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 中的变化