Как выполнить поиск с использованием двух параметров текстового поиска: текст поискового фильтра 1 && текст поискового фильтра 2 - PullRequest
1 голос
/ 03 апреля 2012

Как выполнить поиск в Postgres с двумя текстовыми параметрами поиска: pg-search + Search FIlter 1 + поисковый фильтр 2.

Как искать в pg_Search выводе «Я хочу объединение» фильтра 1Фильтр "&&" 1 "

 @output = PgSearch.multisearch("filter 1") +  PgSearch.multisearch("filter 2")

1 Ответ

2 голосов
/ 13 октября 2012

Я являюсь автором и сопровождающим pg_search.

По умолчанию поисковые термины объединяются с помощью AND в полнотекстовом поиске PostgreSQL.Таким образом, вы можете просто сделать это:

 @output = PgSearch.multisearch("filter 1 filter 2")

Если предположить, что у вас есть условия запроса в строковых переменных, это будет выглядеть примерно так:

 @output = PgSearch.multisearch("#{query1} #{query2}") # if query1 and query2 are strings
 @output = PgSearch.multisearch(queries.join(" "))     # if queries is an array of strings

Соединение OR - этонамного сложнее.У меня пока нет простого решения, хотя это должно быть возможно.

...