Solr - Изменить способ подсчета очков?(Сумма вместо Макса) - PullRequest
0 голосов
/ 04 июня 2018

У нас возникли проблемы с результатами Solr.В этом конкретном примере у нас есть продукт A, показанный выше продукта B. Название продукта A содержит поисковый термин.Название продукта B также содержит поисковый термин, а также его описание и название категории.Логично, что продукт B должен быть более релевантным и отображаться над продуктом A, но это не так.

Схема настроена на учет всех этих дополнительных полей.После анализа отладочной информации запроса с помощью ...&debugQuery=true&debug.explain.structured=true выясняется, что оба продукта достигли одинакового результата.Глядя дальше, я вижу, что эти дополнительные поля рассчитывают баллы, но по какой-то причине парсер берет максимум из этих баллов вместо суммы, которая делает его одинаковым:

enter image description here

enter image description here

Есть ли причина, по которой Solr ведет себя таким образом?Есть ли способ изменить это поведение, чтобы использовать сумму вместо максимума?(Так же, как в родительском элементе на изображениях)

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете контролировать, как рассчитывается оценка, используя параметр tie, при условии, что вы используете анализатор запросов Dismax / eDismax.

Документация Solr объясняет это очень хорошо:

параметр связи (Tie Breaker) :

Параметр связи определяет значение с плавающей запятой (котороедолжно быть чем-то намного меньшим, чем 1) для использования в качестве прерывателя связей в запросах DisMax.

Когда термин из входных данных пользователя проверяется для нескольких полей, может совпадать более одного поля.Если это так, каждое поле будет генерировать различную оценку в зависимости от того, насколько часто это слово находится в этом поле (для каждого документа относительно всех других документов).

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

  • Значение « 0.0 » - значение по умолчанию - делает запрос чистым « maxj запрос дизъюнкции »: то есть только максимальный подзапрос скоринга вносит свой вклад в итоговую оценку.

  • Значение " 1.0 " делает запрос чистым " запросом суммы дизъюнкции ", где не имеет значения, какой максимальный выигрышПодзапрос, потому что окончательная оценка будет суммой оценок подзапроса.Обычно полезно низкое значение, например 0,1.

...