websearch_to_tsquery() 是一个系统函数,它提供了一种灵活的转换方式,将搜索引擎风格的查询转换为 tsquery 类型,以用于 全文搜索。
websearch_to_tsquery() 在 PostgreSQL 11 中添加。
用法
websearch_to_tsquery ( [ config regconfig, ] query text ) → tsquery
带引号的单词序列会转换为短语测试。单词“or”被理解为产生 OR 操作符,破折号产生 NOT 操作符;其他标点符号将被忽略。
变更历史
- PostgreSQL 14
- PostgreSQL 11
- 添加(提交 1664ae19)
示例
websearch_to_tsquery() 的基本用法示例
postgres=# SELECT websearch_to_tsquery('foo or bar -baz');
websearch_to_tsquery
------------------------
'foo' | 'bar' & !'baz'
(1 row)
上面示例生成的 tsquery 值将匹配如下字符串
postgres=# SELECT to_tsvector('foo bar') @@ websearch_to_tsquery('foo or bar -baz');
?column?
----------
t
(1 row)
postgres=# SELECT to_tsvector('foo bar baz') @@ websearch_to_tsquery('foo or bar -baz');
?column?
----------
t
(1 row)
postgres=# SELECT to_tsvector('bar baz') @@ websearch_to_tsquery('foo or bar -baz');
?column?
----------
f
(1 row)
参考资料
- PostgreSQL 文档: 文本搜索函数
有用链接
- PostgreSQL:使用“websearch”语法进行全文搜索 - Adam Johnson 于 2024 年 1 月的博客文章
- PostgreSQL 14:全文查询解析的实质性更改 - Alexander Korotkov 于 2021 年 5 月的博客文章,解释了 PostgreSQL 14 中的更改
