Lucene — Возможно ли изменить оценку запроса без изменения самого запроса?

#java #lucene #information-retrieval

#java #lucene #поиск информации

Вопрос:

Я пытаюсь реализовать функцию обратной связи по релевантности в своей программе, используя один из доступных алгоритмов. Для этого требуется изменить исходную оценку запроса, добавив ее к сумме оценок всех соответствующих документов. Запрос с улучшенной оценкой должен давать новые результаты при использовании. Проблема в том, что пока я не нашел никакого способа изменить оценку запроса в Lucene. Я что-то пропустил в документации? Предоставляет ли Lucene способ изменить оценку существующего запроса?

Ответ №1:

Чтобы изменить оценку запроса, вы помещаете этот запрос в другой запрос. В Lucene есть несколько вариантов для этого. Два очень важных:

  • FunctionScoreQuery: предоставляет статические методы для переноса запроса, умножающего исходную оценку либо на результат другого запроса, либо на DoubleValuesSource который производит повышение для каждого документа в исходном наборе.
  • Модуль выражения: это позволяет выполнять произвольные вычисления для генерации оценки. Это можно объединить с FunctionScoreQuery выше. Проверьте документы для получения дополнительной информации.

Комментарии:

1. Спасибо за ответ. Таким образом, можно манипулировать оценкой запроса. Я чувствую, что эти инструменты не те, которые я ищу. Первый умножает оценку запроса, в то время как модуль выражения изменяет способ генерации оценки. В настоящее время я хочу добавить исходную оценку запроса с некоторыми другими значениями. Предоставляет ли Lucene способ сделать это также? Или, может быть, я действительно могу использовать один из этих инструментов для этого?