如何在 ElasticSearch 中使用 Java API 创建多个聚合

问题描述

我有以下 ElasticSeach 查询 什么应该是等效的 Java api 代码

GET my_index/_search
{
  "aggs": {
    "bucket_id": {
      "terms": {
        "field": "id","size": 1000
      },"aggs": {
        "bucket_name": {
          "terms": {
            "field": "name.keyword","size": 1
          }
        }
      }
    }
  }
}

解决方法

想通了

AggregationBuilder aggregationBuilder = AggregationBuilders.terms("bucket_id").field("id").size(1000);
aggregationBuilder.subAggregation(AggregationBuilders.terms("bucket_name").field("name.keyword"));