2013-02-12 52 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