将solr的文档分数与solr 7.x中的静态索引分数相结合

时间:2018-11-22 15:27:01

标签: solr lucene information-retrieval

我有一些人根据结构化文档将其编入索引。为了简单起见,假设它们具有以下架构

{      
  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中的关联匹配全部通过“游戏”文本字段完成。但是,我希望最终结果列表是与solr和我自己的gamerScore提供的查询相关的组合。即,我需要根据以下公式对结果重新排序:

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

试图达到的目标是在solr中以加权方式组合两个不同的分数。有人问a long time ago这个问题,想知道solr v7.x中是否有东西。可以解决这个问题。

如果解决方案需要,我可以更改架构。

1 个答案:

答案 0 :(得分:0)

实际上,您的公式可以简化为应用0.25的gamerScore-分数的绝对值无关紧要,只是gamerScore字段对文档分数有多大影响。

基于dismax的处理程序支持bf

  

bf参数指定将使用的功能(带有可选的增强功能)   用于构造FunctionQueries,并将其添加到用户的   主查询作为会影响得分的可选子句。

由于bf是一项附加功能,因此您可以使用bf=product(gamerScore,0.25)来使gamerScore占总得分的20%。