如何在lucene中应用默认排序等分?

时间:2009-11-09 10:10:52

标签: lucene sorting

美好的一天,

如果我有例如具有以下字段的文件

Person_name - Birthday
Jordan - 2009-06-15
Marc - 2009-01-01
Marcos - 2009-01-01
Marcissh_something_something - 2009-06-15
Marcos - 2009-12-31

在搜索Person_name时:Marc *我得到了以下分数(这里的分数是假设的)

Person_name - Birthday - Score
Jordan - 2009-06-15 - 0.0
Marc - 2009-01-01 - 1.0
Marcos - 2009-01-01 - 0.8
Marcissh_something_something - 2009-06-15 - 0.1
Marcos - 2009-12-31 - 0.8

如何检索结果,使结果首先按相关性排序,然后假设相同的相关性(得分)按生日降序排序....结果是

Person_name - Birthday - Score
Marc - 2009-01-01 - 1.0
Marcos - 2009-12-31 - 0.8
Marcos - 2009-01-01 - 0.8
Marcissh_something_something - 2009-06-15 - 0.1

由于

2 个答案:

答案 0 :(得分:1)

尝试检查搜索结果,然后自己对那些得分相等的人进行排序。您可以使用比较器来比较分数,然后比较搜索结果的自然字段。

答案 1 :(得分:1)

我打算推荐一个ScoreDocComparator,但我现在看到它已弃用了。您可以使用FieldComparator。您需要创建TopFieldCollector并根据您的意愿定义其Sort。我相信这是相当新的,因为我找不到一个好的例子。