Нужна помощь, чтобы всплыть соответствующие записи с самой последней датой - PullRequest
1 голос
/ 02 октября 2009

У меня есть 5 записей в индексе Lucene.

  • a.Record 1 содержит - налог анализ.Дата значение поля март 2009

    b.Record 2 содержит - Старший налог analyst. Значение поля date - август 2009

    c.Record 3 содержит - Старший налог analyst. Значение поля date - июль 2009

    д. Запись 4 содержит - налоговый аналитик. Дата значение поля - февраль 2009

    e.Record 5 содержит - Старший налог analyst. Значение поля date - октябрь 2009

Если входное ключевое слово является старшим налоговым аналитиком, тогда результаты поиска должны появляться в следующем порядке:

  • a.Record 5 - потому что эта запись получил самую последнюю дату и имеет получил соответствующую фразу

    b.Record 2 - потому что эта запись имеет получил второе самое последнее свидание и имеет получил соответствующую фразу

    c.Record 3 - потому что эта запись имеет получил третье последнее свидание и имеет получил соответствующую фразу

    д. Запись 4

    e.Record 1

По сути, я хочу показать наиболее релевантные записи, сгруппированные по дате и отсортированные в порядке убывания по дате. Затем я хочу показать остальные записи, отсортированные по убыванию значения релевантности. Как мне добиться этого с Lucene?

Пожалуйста, помогите.

Спасибо за чтение.

1 Ответ

2 голосов
/ 04 октября 2009

Я полагаю, что вы можете сделать это, сначала собрав результаты поиска, а затем отсортировав их с помощью CustomSorter. Эта запись в блоге объясняет пользовательскую сортировку в Lucene Java. Вы должны перевести это на .Net, используя .Net ScoreDocComparator . Ваш метод compare () должен получить поля даты из документов и сравнить их. Сначала я попытался бы получить правильный порядок для точных совпадений (записи 5, 2 и 3). Позже вы можете использовать совпадение в компараторе. Вы можете обобщить мой ответ на этот вопрос , чтобы сделать это.

...