我有多个主机 - >多个网址 - >,我想在网址上进行两次聚合。一个用于响应代码,另一个用于响应时间的百分位数。
我试图做同样的事情,但它抛出异常:
找到两个子聚合方法
我的查询:
"aggs" : {
"host" : { "terms" : { "field" : "hostname" },
"aggs":{
"request": { "terms":{ "field" : "request" },
"aggs":{
"status" : { "terms" : { "field" : "responsecode" }}},
"aggs":{
"percen" : { "percentiles" : { "field" : "response_time", "percents" : [50,75,90,95,99] }},
"avrg" : { "avg" : { "field" : "response_time" }
}}}}}}
Elastic Search仅支持一次对一个字段进行嵌套聚合吗?
答案 0 :(得分:0)
您的某个子聚合未正确嵌套在查询中,您需要删除一些大括号(请参阅下文),具体取决于您希望包含percen
和avrg
聚合的位置:
"aggs" : {
"host" : { "terms" : { "field" : "hostname" },
"aggs":{
"request": { "terms":{ "field" : "request" },
"aggs":{
"status" : { "terms" : { "field" : "responsecode" }}},
^^
||
remove these two braces
"aggs":{
"percen" : { "percentiles" : { "field" : "response_time", "percents" : [50,75,90,95,99] }},
"avrg" : { "avg" : { "field" : "response_time" }
}}}}}}