【问题标题】:Combine solr's document score with a static, indexed score in solr 7.x将 solr 的文档分数与 solr 7.x 中的静态索引分数相结合
【发布时间】:2019-04-25 07:45:43
【问题描述】:

我让人们根据结构化文档索引到 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 中的相关性匹配都是通过文本字段“游戏”完成的。但是,我希望我的最终结果列表是与 solr 提供的查询相关性和我自己的 gamerScore 的组合。即,我需要根据以下公式对结果进行重新排序:

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

我试图实现的是在 solr 中以加权方式组合两个不同的分数。这个问题被问到a long time ago,并且想知道 solr v7.x 中是否有什么东西。可以解决这个问题。

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

【问题讨论】:

    标签: solr lucene information-retrieval


    【解决方案1】:

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

    基于dismax 的处理程序支持bf

    bf 参数指定的函数(带有可选的提升)将 用于构造 FunctionQueries 将添加到用户的 主查询作为将影响分数的可选子句。

    由于bf 是一种附加提升,您可以使用bf=product(gamerScore,0.25) 使gamerScore 占总分的20%。

    【讨论】:

    • 谢谢,我可能遗漏了什么。这是一个示例,如果假设我们有 3 名玩家,并且这三个玩家都玩了多场游戏,并且他们还玩了“塞尔达”并且他们对“塞尔达”的得分如下 [Player1: 30, Player2: 50, Player3 : 5]。如果我搜索塞尔达,结果应该是 P2、P1、P3。我看不出函数 boost 在这里是如何工作的。或者它如何仅获取 Zelda 分数并将其与其他玩家的 Zelda 分数进行比较。
    • 在您的示例中,您不需要任何提升 - 一个简单的 sort=zelda desc 就足够了。在这种情况下,您会将“zelda”分数索引到名为zelda 的字段中,然后按它排序。提升对您所描述的内容很有用 - 根据不同的因素移动其他结果,而不是直接排序。要将其作为助推器应用来实现您的公式,请将其索引到名为游戏的字段中,然后将其应用为所描述的助推器。
    • 你是说我应该创建一个名为“game_*”的动态文件,并且在插入时它将是具有上述静态值的“game_zelda”。如果是这样,查询时会发生什么?例如,如果有人查询我没有任何玩家的游戏。示例游戏_SLKHF。此外,当查询包含多个游戏时会发生什么。我理解排序不会考虑所有游戏然后排序,而是在第一个字段上排序,然后在第二个字段上进行排序,依此类推。 "
    • 正确。在查询时,如果该字段存在,则将应用该字段的提升。提升会改变文档的分数 - 可能会重新排序 - 文档的选择不受影响。您将为此使用fq(或常规查询)。如果查询包含您检测到的多个游戏,则将它们添加为单独的字段并为每个游戏添加提升。
    • 添加到我之前的评论 - 实际实现这一点(通过游戏检测)的最佳方法是首先使用查询搜索包含有效游戏的集合,然后使用从该集合返回的列表生成字段名称(即game_<game_id>,其中game_id对于该游戏是唯一的(即zeldazelda_2等)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多