Может ли PostgreSQL индексировать полнотекстовые индексы на 1 или 2 символа? - PullRequest
2 голосов
/ 05 сентября 2011

При выполнении запроса вроде:

select count(*) from myTextTable where tsv @@ plainto_tsquery('english', 'TERM');

Я заметил, что PostgreSQL не использует индекс GIN (который я определил в столбце tsv), когда TERM имеет длину 1 или 2 символа;3 или более символов работают нормально.

Я понимаю, что при индексировании 1 или 2-символьных терминов размер индекса значительно возрастет, но быстрый и быстрый поиск текстов, содержащих конкретные 1 или 2-символьные термины, очень важен дляприложение, которое я разрабатываю.

Существует ли какой-либо параметр конфигурации полнотекстового поиска для индексации 1- или 2-символьных терминов?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Эта проблема теперь решена путем (а) удаления большого количества зашумленного текста со страниц (с помощью определения языка) и (б) удаления / повторного создания индекса GIN.Я предполагаю, что зашумленный текст вызвал взрыв числа лексем и что индекс стал непригодным для использования или был классифицирован как таковой планировщиком запросов.-

0 голосов
/ 05 сентября 2011

Некоторое время назад я написал свои собственные методы to_tsquery () и to_tsvector () (в Python), так как я хотел больше контроля.AFAIK фильтрация происходит в plainto_tsquery ().Если вы замените этот метод, вы также можете индексировать отдельные символы.

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