Поиск специальных символов с помощью pg_search

Я использую

pg_search

И пытается искать в названии специальный символ.

Например, у меня есть две строки с этой информацией:

id    title
1     GT40
2     #GT40

Поэтому, когда я ищу «#GT40», результатом pg_search будет 1 и 2. Но я хочу искать точное слово, поэтому результатом будет только 2.

Спасибо!


person sebaMelgar    schedule 09.06.2015    source источник


Ответы (1)


Я пытался написать комментарий, но моя репутация еще недостаточно высока. Но, может быть, то, что вы пытаетесь сделать, невозможно с pg_search?

pg_search основан на полнотекстовом поиске PostgreSQL. Тестирование в консоли показывает, что «GT40» и «#GT40» индексируются в одну и ту же лексему (это означает, что ваши поиски не могут отличить их друг от друга):

"GT40":

=# SELECT to_tsvector('english', 'GT40');
 to_tsvector 
-------------
 'gt40':1
(1 row)

"#GT40":

=# SELECT to_tsvector('english', '#GT40');
 to_tsvector 
-------------
 'gt40':1
(1 row)

Вот некоторая справочная информация, которая может быть полезна:

Учебник: http://shisaa.jp/postset/postgresql-full-text-search-part-1.html

Справочник по полнотекстовому поиску PostgreSQL: http://www.postgresql.org/docs/9.1/static/textsearch.html

person garbo999    schedule 04.10.2015