Добавляйте свежие документы с помощью Lucene - PullRequest
6 голосов
/ 18 января 2011

Предоставляет ли Lucene средство для обновления свежих документов?

Например, предположим, что документ Lucene содержит поле даты.Можно ли, не имея пользователя, каким-либо образом изменять свой запрос, представлять самые последние документы с более высоким баллом?

Я не хочу прибегать к грубому решению «сортировка по дате», поскольку оно полностью отменит алгоритм оценки.

Ответы [ 2 ]

6 голосов
/ 19 января 2011

Вы можете увидеть Lucene в действии.Во втором издании, стр.187 они дают способ сделать это.По сути, вы захотите написать собственный запрос, который расширяет CustomScoreQuery и добавляет повышение.

3 голосов
/ 18 января 2011

Используйте Document.setBoost (значение с плавающей запятой) при помещении документов в индекс.

Вы можете либо постоянно переустанавливать значение в существующих документах, ИЛИ иметь значение с плавающей запятой, которое увеличивается с датой, поэтому его нужно применять только к моменту вставки документов.

Например, начните со значения повышения 0 для документов первого дня. Каждый день увеличивайте увеличение на 1. Это значение с плавающей запятой, увеличение на 365 каждый год будет длиться долго.

Возможно, вам придется поэкспериментировать с силой усиления, чтобы получить желаемый эффект.

...