多字段聚合-elasticsearch
如何在elasticsearch中使用多重聚合。我的代码适用于单个聚合,但我想添加另一个聚合。我使用了另一个AGG,但是它解析了一个异常多字段聚合-elasticsearch,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,如何在elasticsearch中使用多重聚合。我的代码适用于单个聚合,但我想添加另一个聚合。我使用了另一个AGG,但是它解析了一个异常 { "aggs": { "_figures": { "terms": { "field": "id" }, "aggs": { "field
{ "aggs": {
"_figures": {
"terms": {
"field": "id"
},
"aggs": {
"field1": {
"stats": {
"field": "field1"
},
"field2":{
"stats":{
"field":"field2"
}
}
}
}
}
这对我现在有用。使用下面的代码,我可以处理多个聚合
{"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();
您需要将field2与field1“aggs”平行放置:{“field1”:{“stats”:{“field”:“field1”}},field2:{“stats”:{“field”:“field2”}}