Как я могу сопоставить такие вещи, как "C #" и "C ++" в полнотекстовом поиске PostgreSQL? - PullRequest
2 голосов
/ 11 февраля 2010

К сожалению, синтаксический анализатор отбрасывает все знаки препинания, так что «C», «C ++» и «C #» все заканчиваются как «c».

Единственное, о чем я могу подумать (кроме замены синтаксического анализатора, который на самом деле пока не подходит), это реализовать собственный миниатюрный словарь синонимов перед использованием любой из функций FTS, заменив «C ++» на « Cpp "и" C # "с" Csharp "в приложении или в запросах, например. Есть ли способ сделать это с помощью функций / возможностей FTS?

Ответы [ 2 ]

3 голосов
/ 31 августа 2011

Вы можете создать словарь тезауруса со строками

c + + : cpp
c # : csharp

, а затем добавьте сопоставление для конфигурации текстового поиска для «пустого» типа токена с вашим новым словарем, упомянутым первым

1 голос
/ 11 февраля 2010

Транслите любую соответствующую пунктуацию в слова. C ++ -> Cplusplus, C # -> Csharp, PL / SQL -> PLslashSQL

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