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

Lucene 基于术语列表的Solr搜索。按每个学期的最大(分数)排序,lucene,solr,Lucene,Solr,我试图查询solr服务器,以获得术语列表的最相关结果 例如,我有“诺基亚”、“iphone”、“充电器”等词的列表 我的架构包含以下数据: 诺基亚 iphone 诺基亚iphone otherwords 诺基亚白色 iphone白色 如果我运行一个简单的查询,如q=nokia或iphone或charger,我会得到“nokia iphone otherwords”作为最相关的结果(因为它包含更多的查询词) 我希望得到“诺基亚”或“iphone”或“iphone白色”作为第一个结果,因为对于每个单

我试图查询solr服务器,以获得术语列表的最相关结果

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

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

如果我运行一个简单的查询,如q=nokia或iphone或charger,我会得到“nokia iphone otherwords”作为最相关的结果(因为它包含更多的查询词)

我希望得到“诺基亚”或“iphone”或“iphone白色”作为第一个结果,因为对于每个单独的术语,它们都是最相关的

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


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

在我看来,您应该执行3个单独的搜索

我认为您应该查看“坐标”。从:

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

你也可以在邮件列表中询问其他方式


这可能也有帮助:

我有一个4000个术语的列表和一个100万行的数据集。执行4000次搜索有点悲哀。谢谢你的建议,但是在我的情况下,编写自定义评分类是不可能的。我需要使用标准相似性。
coord is the coordination factor - if there are multiple terms in a query, the more terms that match, the higher the score