tsquery_phrase() 是一个系统函数,用于构建短语查询,以匹配两个 tsquery 项在指定距离内的匹配。
tsquery_phrase() 在 PostgreSQL 9.6 中添加。
用法
tsquery_phrase (query1tsquery,query2tsquery) →tsquery
tsquery_phrase (query1tsquery,query2tsquery,distanceinteger) →tsquery
第一个变体等同于第二个变体,其中 distance 设置为 1。
变更历史
- PostgreSQL 9.6
- 添加(提交 bb140506)
示例
tsquery_phrase() 的基本用法示例
postgres=# SELECT tsquery_phrase('brown'::tsquery, 'fox'::tsquery);
tsquery_phrase
-------------------
'brown' <-> 'fox'
(1 row)
这会匹配 brown 和 fox 相邻的文本,但不会匹配它们之间至少隔着一个其他单词的情况。
postgres=# SELECT to_tsvector('quick brown fox') @@ tsquery_phrase('brown'::tsquery, 'fox'::tsquery);
?column?
----------
t
(1 row)
postgres=# SELECT to_tsvector('brown quick fox') @@ tsquery_phrase('brown'::tsquery, 'fox'::tsquery);
?column?
----------
f
(1 row)
指定一个 distance 值,如果 brown 和 fox 之间隔着该数量的单词,则会产生匹配。
postgres=# SELECT to_tsvector('brown quick fox') @@ tsquery_phrase('brown'::tsquery, 'fox'::tsquery, 2);
?column?
----------
t
(1 row)
参考资料
- PostgreSQL 文档: 文本搜索函数
