array_to_tsvector()
是一个系统函数,用于将 数组 中的词素转换为 tsvector
。
array_to_tsvector()
添加于 PostgreSQL 9.6。
用法
array_to_tsvector (text
[] ) →tsvector
提供的字符串在转换前不会被处理。
变更历史
- PostgreSQL 15
- 禁止创建空词素 (提交 cbe25dcf)
- PostgreSQL 9.6
- 添加 (提交 6943a946)
示例
array_to_tsvector()
的基本用法示例
postgres=# SELECT array_to_tsvector(ARRAY['foo','bar','baz']); array_to_tsvector ------------------- 'bar' 'baz' 'foo' (1 row)
重复值将被合并
postgres=# SELECT array_to_tsvector('{foo,bar,bar}'::text[]); array_to_tsvector ------------------- 'bar' 'foo' (1 row)
请注意,在 PostgreSQL 14 及更早版本中,可以创建空词素,例如:
postgres=# SELECT array_to_tsvector(ARRAY['','foo']); array_to_tsvector ------------------- '' 'foo' (1 row)
从 PostgreSQL 15 开始禁止此行为
postgres=# SELECT array_to_tsvector(ARRAY['','foo']); ERROR: lexeme array may not contain empty strings
参考文献
- PostgreSQL 文档: 全文搜索函数