Функция шкалы lucene-solr перезапускает minTarget, имея одинаковые оценки для всех элементов в наборе результатов

Я хочу нормализовать оценку для конкретного запроса относительно набора результатов для запроса и отфильтровать только более релевантные результаты на основе порога.

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

 "{!func}scale(query({!edismax v=$q}), 0, 100)" 

Если результат содержит ровно один элемент или несколько элементов с одинаковым значением (scaleInfo.maxVal-scaleInfo.minVal==0), функция масштабирования возвращает значение minTarget в качестве нормализованного значения. Поскольку значение меньше порогового значения, действительный результат может не появиться в конечном выводе.

В масштабе масштаб функции рассчитывается как ноль для сценария (scaleInfo.maxVal-scaleInfo.minVal==0)? 0) который я думаю, проблема

final float scale = (scaleInfo.maxVal-scaleInfo.minVal==0) ? 0 : (max-min)/(scaleInfo.maxVal-scaleInfo.minVal);

Является ли приведенное выше использование шкалы (нормализация) правильным? Правильно ли мое наблюдение по поводу масштабирования? Как мне справиться со сценарием? или это ошибка в функции масштабирования?

0 ответов

Другие вопросы по тегам