我试图使用Postgres全文搜索来搜索公司名称的索引。有很多重复,错别字,等等。当匹配公司名称时,像LLC和Inc这样的词并不是完全的停止词(如,我希望它们能算数),但它们并不像大多数其他词那么重要。有没有一种方法可以查询到某些单词在匹配时比其他单词更重要?
(我是通过Django来完成这项工作的,但是如果我能找出要使用的SQL,我可能就可以完成剩下的工作了……)

最佳答案

您可以使用3-argument form of "setweight"来消除特定词汇的重量。您可以在tsvector中执行此操作,而不是在tsquery中。

select setweight(setweight(to_tsvector('The DBA LLC'),'A'),'D','{llc}');
     setweight
-------------------
 'dba':2A 'llc':3D

09-30 00:01