【问题标题】:Priority of search results in Lucene.NETLucene.NET 中搜索结果的优先级
【发布时间】:2013-11-28 13:26:11
【问题描述】:
我有一个 lucene.net-index,其中包含“title”、“description”等字段。
对于搜索,我使用 TopScoreDocDollector。如果我搜索结果,则按 Lucenes 分数优先。
现在,一些结果具有相同的分数,Lucene 首先按分数对文档进行排序,然后按索引中的创建日期排序。
我会首先按“标题”字段的 Lucene-score 排序,然后按 Lucene-score 排序。有这种事吗?
我只能找到一种方法,首先按 Lucene 分数排序,然后按标题字母顺序排序。
【问题讨论】:
标签:
sorting
search
lucene
lucene.net
【解决方案1】:
您需要自己进行排序,或编写自定义收集器。
默认情况下,TopScoreDocDollector 将按分数排序,然后按 docid。当分数相等时,docid 的排序在内部很重要。
在显示结果时进行自定义排序应该很简单。
【解决方案2】:
这真的没有意义。如果标题字段没有得到相同的分数,那么假设总分也不相同是合理的,因此您的二级排序实际上不会对订单产生任何影响。总体得分相同但特定领域得分不同的情况不太可能发生。
如果你的意思是相反的,首先按标题分数排序,然后按总分排序,我会通过提升标题字段来做到这一点。在这种情况下,索引时间提升可能最有意义。