Это невозможно с полнотекстовым поиском, если вы не хотите указывать PostgreSQL не на stemIntelence
вообще, заменив текстовый поиск. Pg не включает слово в индексе, только стебли:
regress=> SELECT to_tsvector('english', 'Intelence');
to_tsvector
-------------
'intel':1
(1 row)
Вы можете подавить вытекающие полностью с simple
словаря:
regress=> SELECT to_tsvector('simple','Intelence');
to_tsvector
---------------
'intelence':1
(1 row)
но это должно быть сделано по индексу, вы можете 't делать это для каждого запроса, не говоря уже о каждом поисковом термине. Таким образом, текст cats are bothering me
не соответствует поиску cat
в словаре simple
из-за множественного числа, или bother
, потому что неустановленные слова не совпадают.
Если вы хотите сделать индивидуальные исключения, вы можете редактировать словарь english
, используемый tsearch2, и определить пользовательский словарь с требуемыми изменениями, а затем использовать этот словарь вместо english
в запросах, где вы хотите получить исключения. Опять же, вы должны использовать тот же словарь для создания индекса и запросов.
Это может быть связано с необходимостью использования нескольких полнотекстовых индексов, что очень нежелательно с точки зрения замедления обновлений/вставок/удалений и с точки зрения эффективности использования памяти.
Почему не 'posttext, как '% Intelence%''? Или регулярное выражение, если вам нужно что-то более сложное. –