基于术语列表的Solr搜索。按每个学期的最高(分数)排序

时间:2011-04-21 11:09:23

标签: lucene solr

我正在尝试查询solr服务器,以便为术语列表获取最相关的结果。

例如,我有“诺基亚”,“iphone”,“充电器”等字样的列表

我的架构包含以下数据:
诺基亚
iphone
诺基亚iphone其他词 诺基亚白色 iphone白色

如果我运行q = nokia或iphone OR充电器之类的简单查询,我会将“nokia iphone otherwords”视为最相关的结果(因为它包含更多查询字词)

我想将“nokia”或“iphone”或“iphone white”作为第一个结果,因为对于每个单独的术语,它们将是最相关的。

为了获得正确的列表,我会对每个术语进行查询,然后汇总结果并根据最高分数对它们进行排序。

我可以在一个请求中进行此查询吗?

2 个答案:

答案 0 :(得分:1)

我认为你应该看看“coord”。来自SolrRelevancyFAQ

coord is the coordination factor - if there are multiple terms in a query, the more terms that match, the higher the score 

您可以编写自己的Similarity子类来忽略坐标,或者只在评分时获取最高值。

可能还有其他方法,您可以在solr-users邮件列表中提问。

这也可能有所帮助:comparing lucene scores across queries

答案 1 :(得分:0)

好像你应该对我执行3次单独的搜索