使用 pg_search 搜索特殊字符

Search special characters with pg_search

我正在使用

pg_search

并尝试在标题中搜索特殊字符。

例如,我有两行包含以下信息:

id    title
1     GT40
2     #GT40

所以当我搜索“#GT40”时,带有pg_search的结果将是1和2。但是我想搜索精确的词,所以结果将只有2。

谢谢!

我尝试写评论,但我的声誉还不够高。但是也许 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