Моя проблема заключается в том, что парсер PL/pgSQL рассматривает символы типа «#» или «+» как пробельные символы (это ОК), поэтому запросы, подобные «C++» или «C#» или «PL/SQL», анализируются следующим образом:Как предотвратить полнотекстовый поиск парсера PostgreSQL, переписывая символы в пробелы?
asciiword | Word, all ASCII | C | {english_stem} | english_stem | {c}
blank | Space symbols | # | {thesaurus_en,simple} | simple | {#}
Я пытаюсь найти лучший способ справиться с такими запросами. Я пытался это сделать, используя словарь тезауруса, но не похоже, что он может работать.
Что я имею в виду, это то, что переписывает «C#» на «CSHARP» во время записи в базу данных (поскольку я предполагаю, что «C#» будет индексироваться как «C») и что-то, что будет делать то же самое при поиске ,
Я мог бы сделать это на стороне моего веб-приложения, но это просто не кажется правильным.
Как я мог бы справиться с тем или каким триггерам PL/pgSQL я мог бы использовать для подхода, о котором я думаю?
эй, большое спасибо за ваш ответ, пользовательский подход трансформатора, похоже, отлично работает до сих пор –