gpt4 book ai didi

elasticsearch - Elasticsearch-在function_score中嵌套查询Boost?

转载 作者:行者123 更新时间:2023-12-03 01:04:50 43 4
gpt4 key购买 nike

我的问题是关于Elasticsearch中的boost函数(我已经阅读了他们的文档,现在还不清楚)。以下“boost_mode”:“sum”是否适用于比赛中的提升?或者,由于它在机柜外部,可能只是最终结果的总和,与默认结果相同。我有很多字段和值 vector -我希望评分是加法而不是乘法。如果以下操作不起作用-任何建议或指示,将不胜感激。谢谢!

"""
| "query": {
| "function_score": {
| "boost_mode": "sum",
| "query": {
| "bool": {
| "should": [
| { "match": { "someField": { "query": "someValue", "boost": 2 } } },
| { "match": { "someOtherField": { "query": "someOtherValue", "boost": 3 } } }
| }
| }
| }
| }
"""

最佳答案

way the sum boost mode works是根据以下公式计算分数:

queryBoost * (queryScore + Math.min(funcScore, maxBoost))

哪里:
  • queryBoost是函数得分内boost参数的值,因为没有,因此默认为1.0f
  • queryScore是查询的常规分数,在您的情况下,它是可变的,并且取决于搜索的术语以及您在boost查询中设置的其他match
  • funcScore是每个过滤器函数的得分相乘的结果,默认为1.0f
  • maxBoost是函数得分内max_boost参数的值,因为没有,因此默认为Float.MAX_VALUE

  • 还要注意的是,由于您没有过滤器功能,因此无需计算 funcScore,总得分只是 queryScore。因此,根据前面的内容,公式可以简化为
    queryScore

    最终,这意味着您的总体得分与查询得分直接相关

    一件好事也是在查询中传递 ?explain=true,以便您可以更深入地了解得分的计算方式。在您的情况下,由于没有过滤器功能,因此根本不使用 boost_mode,而是返回查询分数。

    如果要在 one or more score functions中添加 functions参数,则结果可能会有所不同,因为可以计算出 funcScore

    关于elasticsearch - Elasticsearch-在function_score中嵌套查询Boost?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216187/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com