历史版本。 PostgreSQL 9.4 已结束支持。 2020-02-13. 请参阅 当前版本手册.
9.13. 文本搜索函数和操作符 #
表 9.37、表 9.38以及表 9.39总结了为全文检索提供的函数和操作符。PostgreSQL的文本检索功能的详细解释可参考第 12 章。
表 9.37. 文本搜索操作符
| 操作符 | 描述 | 示例 | 结果 |
|---|---|---|---|
@@ | tsvector 是否匹配 tsquery? | to_tsvector('fat cats ate rats') @@ to_tsquery('cat & rat') | t |
@@@ | @@ 的已弃用同义写法 | to_tsvector('fat cats ate rats') @@@ to_tsquery('cat & rat') | t |
|| | 串接 tsvector | 'a:1 b:2'::tsvector || 'c:1 d:2 b:3'::tsvector | 'a':1 'b':2,5 'c':3 'd':4 |
&& | 将 tsquery 进行 AND 组合 | 'fat | rat'::tsquery && 'cat'::tsquery | ( 'fat' | 'rat' ) & 'cat' |
|| | 将 tsquery 进行 OR 组合 | 'fat | rat'::tsquery || 'cat'::tsquery | ( 'fat' | 'rat' ) | 'cat' |
!! | 对 tsquery 取反 | !! 'cat'::tsquery | !'cat' |
@> | tsquery 是否包含另一个查询? | 'cat'::tsquery @> 'cat & rat'::tsquery | f |
<@ | tsquery 是否被包含于另一个查询? | 'cat'::tsquery <@ 'cat & rat'::tsquery | t |
注意
tsquery 包含操作符只考虑两个查询中列出的词位,忽略组合操作符。
除了表中列出的操作符,tsvector 和 tsquery 类型还定义了普通的 B-树比较操作符(=、< 等)。这些操作符对文本检索用处不大,但可以用于其他用途,例如在这些类型的列上建立唯一索引。
表 9.38. 文本搜索函数
注意
所有接受一个可选的regconfig参数的文本检索函数在省略该参数时,会使用由default_text_search_config指定的配置。
表 9.39中的函数被单独列出,因为它们通常不被用于日常的文本检索操作。它们有助于开发和调试新的文本检索配置。
表 9.39. 文本搜索调试函数