У нас есть приложение, в котором каждая позиция термина в документе связана с «оценкой двигателя».Затем запрос термина должен оцениваться в соответствии с суммой «оценок двигателя» термина в документе, а не по частоте термина.Например, термин частота 5 со средней оценкой двигателя 100 должен быть эквивалентен частоте 1 со счетом двигателя 500.
Я понял, что если я сохраню оценку двигателя для каждой позиции в полезной нагрузке, я будубыть в состоянии использовать ScorePayload в сочетании с итоговой версией PayloadFunction, чтобы получить сумму оценок двигателя для термина в документе, и, следовательно, сможет достичь моей цели.
С этим решением связаны две проблемы:
Даже самый простой запрос запроса должен отсканировать файл позиций, чтобы получить полезные данные, что может быть проблемой производительности.Мы предпочли бы предварительно индексировать сумму баллов за каждый документ в дополнение к термину «частота».Это какая-то полезная нагрузка на уровне документа.Поддерживает ли Lucene это или имеет какое-либо иное решение для этой проблемы?
"Оценка двигателя" вхождения фразы определяется как умножение оценок двигателя терминов, составляющих фразу.Так что в ScorePayload мне нужны полезные данные всех терминов во фразе, чтобы иметь возможность правильно оценить вхождение фразы.
Насколько я понимаю, текущий интерфейс ScorePayload делаетне предоставлять эту информацию.
Есть ли другой способ, которым это может быть достигнуто в Lucene?