Elastic Search中相同类型的多个字段上的平均值或任何其他聚合

时间:2019-07-28 18:21:02

标签: elasticsearch elasticsearch-aggregation

我无法编写请求主体以在弹性搜索中获取多个字段上的平均聚合。

我有两个字段field1和field2均为'double'数据类型。我能够获取单个字段的平均聚合。

这是一个字段:

"aggs" : {
        "AvgValuesOfField1" : {
            "avg" : {
                "field" : "field1"
            }
        }
  }

和两个字段(会给出错误)

"aggs" : {
        "AvgValuesOfField1" : {
            "avg" : {
                "field" : "field1"
            }
        },
        "aggs" : {
            "AvgValuesOfField2" : {
            "avg" : {
                "field" : "field2"
            }
        }
        }
  }

我遇到的错误是 “类型为[avg]的聚合器[group_By_field1]无法接受子聚合” “无法解析名称为[AvgValuesOfCITempIndex]的BaseAggregationBuilder:找不到解析器”

我需要的输出是数据库中存在的所有文档上两个字段的平均值。 我正在使用弹性DB v6.8 有什么建议么?在此先感谢

1 个答案:

答案 0 :(得分:0)

对于单独的聚合,您可以执行以下操作,无需再次编写aggs-这是针对nested aggregations的:

{
  "aggs": {
    "AvgValuesOfField1": {
      "avg": {
        "field": "field1"
      }
    },
    "AvgValuesOfField2": {
      "avg": {
        "field": "field2"
      }
    }
  }