Как выполнить LIKE% для массива с полем, индексированным по GIN? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть столбец массива match_input_search_names, который индексируется с помощью индекса GIN.Когда я запускаю следующий запрос, возвращаются правильные результаты:

SELECT * FROM property_people WHERE search_names @> '{Camel Meal}';

Однако я хотел бы найти в моем столбце частичное совпадение%, как показано ниже:

SELECT * FROM property_people WHERE search_names @> '{%amel Me%}';

1 Ответ

0 голосов
/ 26 сентября 2018

Это невозможно сделать с помощью полнотекстового поиска.

Вы должны

CREATE EXTENSION pg_trgm;

Тогда вы можете

CREATE INDEX ON property_people
   USING gin (search_name gin_trgm_ops);

Этот индекс можно использовать с условием типа

WHERE search_names LIKE '%amel Me%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...