#java #lucene #information-retrieval
#java #lucene #поиск информации
Вопрос:
Я пытаюсь реализовать функцию обратной связи по релевантности в своей программе, используя один из доступных алгоритмов. Для этого требуется изменить исходную оценку запроса, добавив ее к сумме оценок всех соответствующих документов. Запрос с улучшенной оценкой должен давать новые результаты при использовании. Проблема в том, что пока я не нашел никакого способа изменить оценку запроса в Lucene. Я что-то пропустил в документации? Предоставляет ли Lucene способ изменить оценку существующего запроса?
Ответ №1:
Чтобы изменить оценку запроса, вы помещаете этот запрос в другой запрос. В Lucene есть несколько вариантов для этого. Два очень важных:
- FunctionScoreQuery: предоставляет статические методы для переноса запроса, умножающего исходную оценку либо на результат другого запроса, либо на
DoubleValuesSource
который производит повышение для каждого документа в исходном наборе. - Модуль выражения: это позволяет выполнять произвольные вычисления для генерации оценки. Это можно объединить с
FunctionScoreQuery
выше. Проверьте документы для получения дополнительной информации.
Комментарии:
1. Спасибо за ответ. Таким образом, можно манипулировать оценкой запроса. Я чувствую, что эти инструменты не те, которые я ищу. Первый умножает оценку запроса, в то время как модуль выражения изменяет способ генерации оценки. В настоящее время я хочу добавить исходную оценку запроса с некоторыми другими значениями. Предоставляет ли Lucene способ сделать это также? Или, может быть, я действительно могу использовать один из этих инструментов для этого?