Можно ли повлиять на ранг Lucene на основе числового значения? - PullRequest
0 голосов
/ 18 сентября 2011

У меня есть контент с различными числовыми значениями, и более высокое значение указывает (теоретически) более ценный контент, который я хочу ранжировать выше.

Например:

  • Средняя оценка (0 - 5)
  • Количество комментариев (0 - что угодно)
  • Количество ссылок на входящие ссылки с других страниц (0 - что угодно)
  • Некоторое произвольное число, которое я применяю, чтобы указать, насколько важным я считаю содержание (1 - что угодно)

Они могут быть проиндексированы Lucene как числовое значение, но как я могу сказать Lucene использовать это значение в алгоритме ранжирования?

Ответы [ 2 ]

4 голосов
/ 18 сентября 2011

Вы можете установить это значение, используя «Field.SetBoost» при индексации.

1 голос
/ 18 сентября 2011

В зависимости от того, как именно вы хотите продолжить, вы можете установить повышение во время индексации, как предложено @LB, или если вы хотите сделать его динамичным, то есть во время поиска, а не во время индексации, вы можете использовать ValueSourceQuery и CustomScoreQuery.

Вы можете увидеть пример в вопросе, который я задал некоторое время назад: Пользовательская оценка Lucene для числовых полей (пример был протестирован с Lucene 3.0).

...