0

如何在 elasticsearch 中使用多重聚合。我的代码适用于单个聚合,但我想添加另一个聚合。我为此使用了另一个 aggs,但它解析了一个异常。

 { "aggs": {
                "_figures": {
                  "terms": {
                    "field": "id"
                  },
                  "aggs": {
                    "field1": {
                      "stats": {
                        "field": "field1"
                      },
                      "field2":{
                        "stats":{
                          "field":"field2"
                        }
                      }
                    }
                  }
                }
4

1 回答 1

1

这现在对我有用。使用下面的代码,我可以使用多个聚合

 {"aggs": {
        "emp_figures": {
          "terms": {
            "field": "id"
          },
          "aggs": {
            "field1": {
              "stats": {
                "field": "field1"
              }
            },
            "field2":{
                "stats":{
                  "field":"field2"
                }
              },
            "field3":{
                "stats":{
                  "field":"field3"
                }
              }
          }
        }
      }
    }

这也是使用 java 进行多重聚合的方法

 SearchResponse getResponse = 
        client.prepareSearch( ElasticSearchConstants.INDEX ).setTypes( ElasticSearchConstants.TBL)
            .addAggregation( AggregationBuilders.terms( FIGURE)
                                    .field( "id" )
            .subAggregation( AggregationBuilders.stats( "stats" ).field( field1 ) )
            .subAggregation( AggregationBuilders.stats( "stats" ).field( field2) ).size( 100 ) )
                            .setQuery( query )
                            .setFrom( 0 )
                            .execute().actionGet();   
于 2019-10-24T14:09:55.897 回答