一种像 disjunction_max 一样获得平均分的方法

A way to score average just like disjunction_max

我有一个查询,使用 dis_max 从由多个嵌套查询评分的批处理文档中获取最大分数:

{  
  "query":  {
    "dis_max": {
      "queries": [
         {
           "nested" : {}, //nested_1
           "nested" : {}  //nested_2
         }
        ]
    }
  }
}

有没有像“dis_avg”这样的查询,不是return最高分,而是求平均分。

例如,据我所知:

  1. nested_1 从 object_a 中获得 0.7 分,从 object_b 中获得 0.2 分,

  2. nested_2 从 object_a 中获得 0.5 分,从 object_b 中获得 0.8 分,

和dis_max得分object_b0.8并标记为第一,得分object_a0.7并标记为第二。

以及此处的任何查询,以便我可以:

得分object_b 0.5,标记为第二,得分object_a 0.6,标记为第一。

我使用 bool 查询组合多个查询,并使用 boost 对每个查询进行平均加权以获得平均分数。