提问者:小点点

搜索结果在Lucene.NET中的优先级


我有一个lucene.net索引,其中包含“标题”、“描述”和其他字段。对于搜索,我使用TopScoreDocDollector。如果我搜索,结果按Lucenes分数优先排序。

现在,一些结果具有相同的分数,Lucene首先按分数排序文档,其次按索引中的create-date排序。
我会首先按Lucene-score排序,然后按“标题”字段的Lucene-score排序。有这样的事情吗?

我只找到一种方法,首先按Lucene-score排序,然后按标题字母排序。


共2个答案

匿名用户

您需要自己进行排序,或编写自定义收集器。

默认情况下,TopScoreDocDollector将按分数排序,然后按docid排序。当分数相等时,按docid排序在内部很重要。

在显示结果时进行自定义排序应该很简单。

匿名用户

这并没有真正的意义。如果标题字段没有得到相同的分数,那么假设总体分数也不会相同是合理的,因此您的二级排序实际上永远不会对顺序产生任何影响。总体分数相同但特定字段的分数不同的情况是相当不可能的。

如果你的意思是相反,首先对标题分数进行排序,然后对整体分数进行排序,我会通过提升标题字段来做到这一点。索引时间提升在这种情况下可能最有意义。