Postgresql для полнотекстового поиска

В таблице будет храниться более 1млн. записей. Каждая запись имеет колонку с текстом.

В самом запросе будут join, так что представим ситуацию, что после join мы имеем 1млн. записей. По нему мне надо сделать полнотекстовый поиск.

Я пробовал создавать индексы:

CREATE INDEX idx_gin_document 
ON document
USING gin (to_tsvector('russian', "content"));

Заполнил таблицу одинаковыми данными. При 500т. записей индекс отрабатывает и время выполнения запроса занимает миллисекунды. Но если в таблице 1млн. записей, то постгрес переходит на последовательное сканирование (seq scan).

Вопрос: можно ли нормально организовать (что бы индексы использовал в 100% случаев) полнотекстовый поиск на postgresql или надо прикручивать что-то типа elasticksearch?


Ответы (0 шт):