2013-02-12 59 views
0

我想弄清楚@@运算符在postgres中的工作方式。Postgres匹配运算符@@

我有两个疑问:

SELECT description FROM product WHERE description @@ '%apple%' 
SELECT description FROM product WHERE description @@ 'apple' 

这两个查询返回相同的行数。显然,postgres从查询中删除所有非 字母数字字符。这是真的吗?

我也可以做@@ '@apple..,,.',我仍然得到相同数量的结果。

回答

1

@@操作符是TSearch2全文搜索引擎的一部分。它确实删除了这些字符。 TSearch2的主题是方式太大,无法将其包含在这里,所以我只会将您指向documentation

+0

谢谢你的回答。在发布问题之前,我已经将链接变成红色,但它没有说明如何对查询进行预处理。 – catalaur 2013-02-13 09:00:23

+1

当然是的。 @@的右侧是tsquery。 tsquery通过与tsvector相同的解析器和字典。 – 2013-02-13 10:47:00