Я хочу добавить оценочный профиль в свой индекс в Azure Search. Более конкретно, каждый документ в моем индексе имеет поле weight
типа Edm.Double
, и я хочу увеличить их в соответствии с этим значением. Я не хочу просто сортировать их непосредственно по отношению к weight
, потому что релевантность поискового термина также важна.Как профили подсчета очков генерируют баллы в Azure Search?
Для того, чтобы проверить это, я создал оценочный профиль с функцией величины с величиной повышения 1000 (просто чтобы узнать, как я это делаю), линейная интерполяция, начальное значение 0 и конечное значение 1. Что я ожидал, что значение повышения будет добавлено к общей оценке поиска. Таким образом, документ с весом 0,5 получит повышение в 500, тогда как документ с весом 0,125 получит повышение 125. Однако результирующие оценки не были почти такими же интуитивными.
У меня есть несколько вопросов, в данном случае:
1) Как функция счет генерируемых в этом случае? У меня есть документы с весами, близкими друг к другу (скажем, 0,5465 и 0,5419), но различия между их итоговыми оценками составляют около 100-150, тогда как я ожидаю, что это будет около 4-5.
2) Как результаты оценки и веса объединены в итоговый результат для каждого результата поиска?
Спасибо Нейт, это прекрасно отвечает на мой вопрос. Мне нужно одно уточнение, но это использование весов для каждого поля. Если у меня есть веса на моих полях, базовая оценка рассчитывается сначала с этими весами, а затем с использованием этого базового балла, формулировка, которую вы объяснили, рассчитана, правильно ли? – halileohalilei
Если вы имеете в виду вес полей в профиле оценки, да, вес поля уже учитывается в базовом баллах, тогда применяется дополнительное повышение. –
Еще раз спасибо Nate. И последнее. Имеет ли документ с минимальным значением в функции подсчета очков окончательный результат 0? В моем случае 'weight - min' может быть 0, однако в этом случае я не хочу, чтобы этот документ был глубоко в результатах поиска, я просто не хочу, чтобы его повышали и сохраняли исходный базовый балл. Поэтому вместо того, чтобы умножать интерполированный коэффициент форсирования на базовый счет, я хочу добавить их. Есть ли способ сделать это? Или любое другое решение этой проблемы? – halileohalilei