像disjunction_max一样为平均值评分的方法

问题描述

我有一个查询,请使用dis_max从批处理文档中获得最高分数,该批文档由多个嵌套查询评分:

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

是否有类似“ dis_avg”的查询,不返回最高分,而是获得平均分。

例如,据我所知

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

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

and dis_max将object_b得分为0.8,并将其标记为1;将object_a 0.7得分为,并将其标记为2。

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

将object_b得分为0.5,标记为2,将object_a得分为0.6,标记为1。

解决方法

我使用布尔查询来组合多个查询,并使用boost来平均每个查询的权重以获得平均得分。