Lucene - оценка и полезная нагрузка - PullRequest
1 голос
/ 08 декабря 2011

У нас есть приложение, в котором каждая позиция термина в документе связана с «оценкой двигателя».Затем запрос термина должен оцениваться в соответствии с суммой «оценок двигателя» термина в документе, а не по частоте термина.Например, термин частота 5 со средней оценкой двигателя 100 должен быть эквивалентен частоте 1 со счетом двигателя 500.

Я понял, что если я сохраню оценку двигателя для каждой позиции в полезной нагрузке, я будубыть в состоянии использовать ScorePayload в сочетании с итоговой версией PayloadFunction, чтобы получить сумму оценок двигателя для термина в документе, и, следовательно, сможет достичь моей цели.

С этим решением связаны две проблемы:

  1. Даже самый простой запрос запроса должен отсканировать файл позиций, чтобы получить полезные данные, что может быть проблемой производительности.Мы предпочли бы предварительно индексировать сумму баллов за каждый документ в дополнение к термину «частота».Это какая-то полезная нагрузка на уровне документа.Поддерживает ли Lucene это или имеет какое-либо иное решение для этой проблемы?

  2. "Оценка двигателя" вхождения фразы определяется как умножение оценок двигателя терминов, составляющих фразу.Так что в ScorePayload мне нужны полезные данные всех терминов во фразе, чтобы иметь возможность правильно оценить вхождение фразы.

Насколько я понимаю, текущий интерфейс ScorePayload делаетне предоставлять эту информацию.

Есть ли другой способ, которым это может быть достигнуто в Lucene?

1 Ответ

0 голосов
/ 22 января 2014

Одним из обходных путей для полезной нагрузки на уровне документа является создание одного документа Lucene / вашего документа, который просто содержит оценку движка для всего вашего документа в виде поля со специальным именем (отличного от всех других имен полей документа Lucene). Затем вы можете объединить / извлечь этот документ во время поиска. Не много обходного пути, но это так.

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