如何为嵌套Terms聚合分别添加平均值与求和聚合?
嵌套Terms聚合中分别添加平均值和求和聚合的实现方法
完全可以实现你的需求,只需要在对应层级的聚合中添加avg或sum类型的子聚合即可。以下是修改后的查询语句:
{ "aggs": { "agg1": { "terms": { "field": "destination.bytes" }, "aggs": { "agg1_avg_result": { "avg": { "field": "your_avg_field" // 替换为你要计算平均值的数值字段,比如response.size } }, "agg2": { "terms": { "field": "source.bytes" }, "aggs": { "agg2_sum_result": { "sum": { "field": "your_sum_field" // 替换为你要计算求和的数值字段,比如request.duration } } } } } } } }
关键说明:
agg1_avg_result是添加在agg1下的平均值聚合:它会针对destination.bytes的每个分组,计算指定数值字段的平均值。agg2_sum_result是添加在agg2下的求和聚合:它会嵌套在destination.bytes的分组内,针对每个source.bytes的子分组,计算指定数值字段的求和值。
注意:替换字段时要确保目标字段是Elasticsearch支持的数值类型(如long、float、double等),否则会导致聚合失败。
内容的提问来源于stack exchange,提问作者su-wan Kenobi
相关产品推荐
相关产品推荐

