帮助需要在最近的日期冒泡相关记录

时间:2009-10-02 02:51:35

标签: lucene lucene.net

我在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实现这一目标?

请帮忙。

感谢阅读。

1 个答案:

答案 0 :(得分:2)

我相信你可以先收集搜索结果,然后使用CustomSorter对它们进行排序。 This blog entry解释了Lucene Java中的自定义排序。您必须使用.Net's ScoreDocComparator将其转换为.Net。您的compare()方法必须从文档中获取日期字段并进行比较。我会首先尝试获得完全匹配的正确顺序(记录5,2和3)。之后,您也可以在比较器中使用匹配项。您可以将我的答案概括为this question以便执行此操作。