所以,我有一个带有表文档
的PostgreSQL数据表id|fullname
我添加了一个tsv列并使用索引更新了表:
UPDATE documents SET tsv = setweight(to_tsvector(coalesce(fullname,'')), 'A');
但是,当我执行此查询时:
SELECT id, fullname, tsv
FROM documents
WHERE (tsv @@ to_tsquery('will & smith'))
在结果中,有些行只有 smith ,而 和 smith 。 像这样:
id | fullname | tsv
1779471 | gloria smith | gloria':1A 'smith':2A
此行为似乎更像是或运算符而不是和。
您是否知道为什么& 运算符效果不佳?
答案 0 :(得分:1)
在ts函数中使用simple
regconfig:
select
*
from documents
where
to_tsvector('simple', fullname) @@ to_tsquery('simple', 'will & smith');