Объедините оценку документа solr со статической индексированной оценкой в ​​solr 7.x - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть люди, проиндексированные в solr на основе структурированных документов.Для простоты, скажем, у них есть следующая схема

{      
  personName: text,
  games :[ { gamerScore: int, game: text } ]
}

Примером выше будет

{     
 personName: john,
 games: [
   { gamerScore: 80, game: Zelda },
   { gamerScore: 20, game: Space Invader },
   { gamerScore: 60, game: Tetris},
 ]
}

'gamerScore' (значение от 1 до 100, чтобы указать, насколько хорошочеловек находится в указанной игре). Соответствие релевантности в solr все делается через текстовое поле 'game'.Тем не менее, я хочу, чтобы мой окончательный список результатов был сочетанием релевантности с запросом, предоставленным solr и моим собственным gamerScore.А именно, мне нужно переоценить результаты на основе следующей формулы:

personFinalScore = (0.8 * solrScore) + (0.2 * gamerScore)

То, чего я пытаюсь добиться, - это сочетание двух разных баллов взвешенным способом в solr.Этот вопрос был задан давным-давно , и ему было интересно, есть ли что-то в solr v7.x.это может решить эту проблему.

Я могу изменить схему, если решение этого требует.

1 Ответ

0 голосов
/ 01 декабря 2018

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

На основе dismaxобработчики поддерживают bf:

Параметр bf указывает функции (с необязательными бустами), которые будут использоваться для конструирования FunctionQueries, которые будут добавлены в основной запрос пользователя в качестве необязательных предложений, которые будут влиять на оценку.

Поскольку bf является дополнительным стимулом, вы можете использовать bf=product(gamerScore,0.25), чтобы gamerScore подсчитал 20% от общего балла.

...