Запрос результатов поиска lucene - PullRequest
1 голос
/ 29 июля 2010

У меня есть хранилище новостей со следующими полями (Заголовок, Тело, NewsDate)Мне нужен лучший запрос по следующим критериям

1) заголовок важнее, но меньше даты2) дата должна сравниваться с текущей датой, если дата документа близка к текущей дате, это более ценно (ПРИМЕЧАНИЕ. Это не означает, что сортировка по убыванию по дате новостей может привести к тому, что их заголовок и его телоболее актуально, но оно старше) это просто еще один фактор для поиска, и я думаю, что он нуждается в пользовательской сортировке3) Тело находится на третьем месте

Есть решение?

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Как сказал @Guillaume, вам нужно использовать бустинг.

Вы можете работать в 2 местах: одно при индексировании (повышение заголовка и тела) и второе (поле даты) при запросе. Поле даты является временем запроса, так как оно является динамическим

  1. Увеличение индекса будет выглядеть следующим образом:

    Поле fld = новое поле (....); fld.setBoost (10f); // в 10 раз важнее, 1 по умолчанию

  2. Повышение времени запроса будет заключаться в получении разницы в датах (скажем, в днях или минутах) и обратном повышении, т. Е. Чем больше различие. чем меньше буст.

0 голосов
/ 29 июля 2010

Вы должны использовать Boosting в своей схеме вместо очень сложных запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...