[聚合多个字段的弹性搜索查询

问题描述 投票:0回答:1

我正在编写一个弹性搜索查询,有效载荷看起来像

“ userData”:[{“ subject1”:1234,“主题2”:678}]

我编写了一个查询,如果我想获取单个字段的平均值,它可以很好地工作

查询:

{ 
  "aggs": { 
    "student_data": { 
      "date_histogram": { 
        "field":"@timestamp",
        "calendar_interval":"minute"
      },
      "aggs": { 
        "marks_avg": { 
          "avg": { 
            "field":"subject1"
          }
        }
      }
    }
  }
}

我想要的是也获得subject2的平均值。

有点像:

"avg": { 
    "field":"subject1",
    "field":"subject2"
 }
java elasticsearch kibana querydsl
1个回答
1
投票

使用多个聚合的查询应该起作用:

{ 
  "aggs": { 
    "student_data": { 
      "date_histogram": { 
        "field":"@timestamp",
        "calendar_interval":"minute"
      },
      "aggs": { 
        "subject1_avg": { 
          "avg": { 
            "field":"subject1"
          }
        },
        "subject2_avg": { 
          "avg": { 
            "field":"subject2"
          }
        }
      }
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.