2009-10-02 54 views
1

我在Lucene索引中有5條記錄。幫助需要用最近的日期冒泡相關記錄

  • a.Record 1包含 - 稅收 analysis.Date字段值爲月 2009年

    b.Record 2包含 - 高級稅務 analyst.Date字段的值是2009年08月

    c.Record 3包含 - 高級稅務 analyst.Date字段的值是2009年7月

    d.Record 4包含 - 稅收analyst.Date 字段值是二月2009年

    e.Record 5包含 - 高級稅務 analyst.Date字段的值是2009年

十月如果輸入關鍵字高級稅務分析師,那麼搜索結果應該拿出以下順序:

  • a.Record 5 - 因爲這個記錄是 已經拿到了最新的日期,並具有 得到了短語匹配

    b.Record 2 - 因爲這個記錄有 了第二最近的日期,並具有 得到了短語匹配

    c.Record 3 - 因爲這個記錄有 了最新的第三次約會,並具有 得到了短語匹配

    d.Record 4

    e.Record 1

基本上,我想展示最相關的記錄組按日期編輯並按日期降序排序。然後,我想顯示按照相關性降序排序的剩餘記錄。 我如何用Lucene實現這一點?

請幫忙。

感謝您的閱讀。

+0

你爲什麼不接受Yuval的回答? –

回答

2

我相信你可以先收集搜索結果,然後用CustomSorter排序他們做到這一點。 This blog entry解釋了Lucene Java中的自定義排序。您必須使用.Net's ScoreDocComparator將其轉換爲.Net。您的compare()方法必須從文檔中獲取日期字段並進行比較。我會先嚐試獲得正確匹配的正確順序(記錄5,2和3)。稍後,您可以在比較器中使用該匹配。你可以概括我的答案this question爲了做到這一點。