Функция шкалы 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);
Является ли приведенное выше использование шкалы (нормализация) правильным? Правильно ли мое наблюдение по поводу масштабирования? Как мне справиться со сценарием? или это ошибка в функции масштабирования?