更新时间:2024-11-27 GMT+08:00

文本检索操作符

@@

描述:tsvector类型的词汇与tsquery类型的词汇是否匹配

示例:

1
2
3
4
5
SELECT to_tsvector('fat cats ate rats') @@ to_tsquery('cat & rat') AS RESULT;
 result 
--------
 t
(1 row)

@@@

描述:@@的同义词

示例:

1
2
3
4
5
SELECT to_tsvector('fat cats ate rats') @@@ to_tsquery('cat & rat') AS RESULT;
 result 
--------
 t
(1 row)

&&

描述:将两个tsquery类型的词汇进行“与”操作

示例:

1
2
3
4
5
SELECT 'fat | rat'::tsquery && 'cat'::tsquery AS RESULT;
          result           
---------------------------
 ( 'fat' | 'rat' ) & 'cat'
(1 row)

||

描述:将两个tsquery类型的词汇进行“或”操作

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SELECT 'fat | rat'::tsquery || 'cat'::tsquery AS RESULT;
          result           
---------------------------
 ( 'fat' | 'rat' ) | 'cat'
(1 row)
SELECT 'a:1 b:2'::tsvector || 'c:1 d:2 b:3'::tsvector AS RESULT;
          result           
---------------------------
 'a':1 'b':2,5 'c':3 'd':4
(1 row)

!!

描述:tsquery类型词汇的非关系

示例:

1
2
3
4
5
SELECT !! 'cat'::tsquery AS RESULT;
 result 
--------
 !'cat'
(1 row)

@>

描述:一个tsquery类型的词汇是否包含另一个tsquery类型的词汇

示例:

1
2
3
4
5
SELECT 'cat'::tsquery @> 'cat & rat'::tsquery AS RESULT;
 result 
--------
 f
(1 row)

<@

描述:一个tsquery类型的词汇是否被包含另一个tsquery类型的词汇

示例:

1
2
3
4
5
SELECT 'cat'::tsquery <@ 'cat & rat'::tsquery AS RESULT;
 result 
--------
 t
(1 row)

除了上述的操作符,还为tsvector类型和tsquery类型的数据定义了普通的B-tree比较操作符(=,<等)。