我在Lucene索引中有5条记录。
a.Record 1包含 - 税 analysis.Date字段值是March 2009年
b。记录2包含 - 高级税 analyst.Date字段值是2009年8月
c。记录3包含 - 高级税 analyst.Date字段值是2009年7月
d.Record 4包含 - 税务分析师。日期 字段值是2009年2月
e.Record 5包含 - 高级税 analyst.Date字段值是2009年10月
如果输入关键字是高级税务分析师,则搜索结果应按以下顺序出现:
a.Record 5 - 因为这个记录是 已经有了最新的约会 得到了匹配的短语
b.Record 2 - 因为这个记录有 得到第二个最近的日期并且有 得到了匹配的短语
c.Record 3 - 因为这个记录有 得到第三个最近的日期并且有 得到了匹配的短语
d.Record 4
e.Record 1
基本上,我想显示按日期分组的最相关记录,并按日期降序排序。然后,我想显示按相关性的降序值排序的剩余记录。 我如何通过Lucene实现这一目标?
请帮忙。
感谢阅读。
答案 0 :(得分:2)
我相信你可以先收集搜索结果,然后使用CustomSorter对它们进行排序。 This blog entry解释了Lucene Java中的自定义排序。您必须使用.Net's ScoreDocComparator将其转换为.Net。您的compare()方法必须从文档中获取日期字段并进行比较。我会首先尝试获得完全匹配的正确顺序(记录5,2和3)。之后,您也可以在比较器中使用匹配项。您可以将我的答案概括为this question以便执行此操作。