聚合语句:
"aggs": {
"users": {
"terms": {
"size": 5000,
"field": "userId"
},
"aggs": {
"resourceIds": {
"cardinality": {
"field": "resourceId"
}
}
}
},
"read_count": {
"sum_bucket": {
"buckets_path": "users>resourceIds.value"
}
},
"user_count": {
"cardinality": {
"field": "userId"
}
},
"read_time": {
"sum": {
"field": "duration"
}
}
}
==============================================
JAVA api
TermsAggregationBuilder ab = AggregationBuilders.terms("users").field("userId").size(5000)
.subAggregation(AggregationBuilders.cardinality("resourceIds").field("resourceId"))
.subAggregation(new SumBucketPipelineAggregationBuilder("read_count", "users>resourceIds.value"))
.subAggregation(AggregationBuilders.cardinality("user_count").field("userId"))
.subAggregation(AggregationBuilders.sum("read_time").field("duration"));
请问这个api只能添加subAggregation,请问怎么添加同级的聚合?
因为read_count、user_count、read_time与users处于同一等级
"aggs": {
"users": {
"terms": {
"size": 5000,
"field": "userId"
},
"aggs": {
"resourceIds": {
"cardinality": {
"field": "resourceId"
}
}
}
},
"read_count": {
"sum_bucket": {
"buckets_path": "users>resourceIds.value"
}
},
"user_count": {
"cardinality": {
"field": "userId"
}
},
"read_time": {
"sum": {
"field": "duration"
}
}
}
==============================================
JAVA api
TermsAggregationBuilder ab = AggregationBuilders.terms("users").field("userId").size(5000)
.subAggregation(AggregationBuilders.cardinality("resourceIds").field("resourceId"))
.subAggregation(new SumBucketPipelineAggregationBuilder("read_count", "users>resourceIds.value"))
.subAggregation(AggregationBuilders.cardinality("user_count").field("userId"))
.subAggregation(AggregationBuilders.sum("read_time").field("duration"));
请问这个api只能添加subAggregation,请问怎么添加同级的聚合?
因为read_count、user_count、read_time与users处于同一等级
1 个回复
Dramecj
赞同来自: zzzx081135
.addAggregation(AggregationBuilders.terms("read_count").field("read_count.keyword"))
.addAggregation(AggregationBuilders.terms("user_count").field("user_count.keyword"))
.addAggregation(AggregationBuilders.terms("read_time").field("read_time.keyword"))
.addAggregation(AggregationBuilders.terms("users").field("users.keyword"))