【问题标题】:SOLR - How to influence score with popularity field?SOLR - 如何影响人气领域的得分?
【发布时间】:2018-08-24 16:38:46
【问题描述】:

有没有办法实现以下-

我们在每个文档中都有一个 RANK 字段,基本上,我希望我的分数受到这个 RANK 的影响,如下所示 -

score = (score * 0.1) + RANK

如何通过函数查询或其他机制实现这一点

Solr 版本 # 7.4.0

谢谢!

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    bf(提升函数)和bq 函数都是相加的,这意味着它们的结果会添加到现有分数中。

    因此,不要将分数乘以 0.1,而是将受欢迎程度乘以 10(实际上是给您相同的排名):

    bf=product(RANK,10)
    

    mulproduct 的别名)

    【讨论】:

    • 我怎么可能排名一样?我想将分数乘以 0.1 的原因是只考虑分数的 10% 并加上我的 RANK 给它 90% 的权重。因此,如果分数 = 5 且 RANK=10,我正在尝试实现以下目标 - score = score * 0.1 + RANK = 5 * 0.1 + 10 = 10.5 上面的操作将执行以下操作 - score = score + RANK * 10 = 5 + 100 = 105 我错过了什么吗?
    • 是的,但重点不是 会相同,而是 RANK 对最终得分的权重相同。在您的示例中,“分数”因子是分数的 4.7%,而在第二个示例中,原始分数是分数的 4.7%。绝对值无关紧要。另一个问题是查询的分数也可以标准化,因此与 RANK 相比,所有查询的“RANK”和“score”值的比例不同。
    • 我明白了。感谢您的解释。您也可以看看以下内容吗? stackoverflow.com/questions/51978351/…
    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2016-03-31
    相关资源
    最近更新 更多