172 похожих чатов

Здравствуйте, дорогие постгресовцы. Предположим, есть таблица товаров - номер - наименование - код

производителя
Мне надо написать запрос, который бы позволил мне искать по тексту (допустим мы это сделали триграммами)
Разумеется желательно, чтобы вытаскивались только первые несколько записей, а не весь набор

А по результатам поиска (т. е. среди всех совпадающих записей) также хочу определить какие производители доступны для дальнейшей фильтрации. Т. е. сделать фильтр фильтра.

Например:
Скажем, есть производители: Шоколадная Фабрика Россия, Автозавод Ваз, Автозавод Зил
Ну и я вот ввёл в поиск автомобиль, и он показал мне кучу автомобилей

А второй запрос, возвращающий список поставщиков, показал Автозавод Ваз, Автозавод Зил, а Шоколадную фабрику не показал, т. к. она не производит автомобили.

Как такое делается по-умному? Т. е. чтобы эффективно было. Реально ли такое вообще без полного сканирования удовлетворяющих критерию записей?

1 ответов

8 просмотров

Вопрос не про Postgres, а скорее про алгоритмы, но можно порассуждать. Реально ли такое вообще без полного сканирования удовлетворяющих критерию записей? Очевидно, нет. Если хотите найти полный набор фильтров, надо найти и все элементы. А еще, наверное, учесть, есть ли они в наличии и т.п., тут уж не знаю вашу предметную область. Решение, которое вижу я, такое: Извлекаем все элементы и все параметры фильтрации, т.е. получаем табличку, где, условно, в первой колонке будет товар, во второй производитель, в третьей поставщик и т.д.. И уже из этой таблицы получим все что необходимо, причем за один проход.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
падает джоба хотя уже была собрана на соседнем namespace, куда капать? │ │ Copying blob sha256:2fa066caddb8f09a71082b03aa43046f79346a01d9c89e06a1f508bb1207dba5 427 │ │ Copyin...
Andrei St
6
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Hello experts, Could someone kindly tell me how to run vacuum inside a plpgsql function? If you have any link please share. Thank you
Amol Palav
10
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Карта сайта