【发布时间】:2013-06-28 01:33:55
【问题描述】:
我刚开始使用 postgreSQL 进行模糊文本匹配。我有两列:job_title 和 company_name。
典型的全文搜索会连接job_title和company_name,然后根据单个排名返回搜索文本结果。
但是,在我的情况下,同等对待两列中的文本匹配可能会出现问题。例如,Search Engineer Google Co. 不应与 Google Search Engineer Co. 排名相同
我知道我可以为每一列分配不同的权重。但是,我没有理由认为一个比另一个更重要。
如何将我的关键字分别与每一列进行匹配,并为每个关键字返回一些“匹配分数”?
类似:
Jobs.where("(to_tsvector('english', position) @@ plainto_tsquery(:q)) AND
(to_tsvector('english',company) @@ plainto_tsquery(:q))", q: "Search Engineer", q: "Google")
【问题讨论】:
标签: ruby-on-rails postgresql full-text-search