我正在使用像这样的过滤器聚合
"aggs": {
"streams": {
"filters": {
"filters": {
"week1": {
'range': {
'date': {
'gte': start_date1,
'lte': end_date1,
"format": "YYYY-MM-dd'T'HH:mm:ss"
}
}
},
"week2": {
'range': {
'date': {
'gte': start_date2,
'lte': end_date2,
"format": "YYYY-MM-dd'T'HH:mm:ss"
}
}
}
}
},
"aggs": {
"streamCountAll": {"sum": {"field": "streamCount"}},
"deviceName": {
"terms": {
"field": "deviceName",
"size": 30,
},
"aggs": {
"streamCount": {"sum": {"field": "streamCount"}}
}
},
这会尝试在两个星期内找到流进行比较。现在我想添加版本号。 而不是第1周和第2周,我试图做第1周版本A对比第1周版本B. 我的查询看起来像
"aggs": {
"streams": {
"filters": {
"filters": {
"week1": {
'terms' : {'version': [109, 107]},
'range': {
'date': {
'gte': start_date1,
'lte': end_date1,
"format": "YYYY-MM-dd'T'HH:mm:ss"
}
}
},
"week2": {
'range': {
'date': {
'gte': start_date2,
'lte': end_date2,
"format": "YYYY-MM-dd'T'HH:mm:ss"
}
}
}
}
},
"aggs": {
"streamCountAll": {"sum": {"field": "streamCount"}}
但是我收到错误"原因":"没有为[版本]注册查询"
任何人都可以帮助我,在过滤器聚合存储桶中添加多个条件。
答案 0 :(得分:2)
您需要将bool/filter
个问题添加到这样的混合中:
"aggs": {
"streams": {
"filters": {
"filters": {
"week1": {
"bool": {
"filter": [
{ 'terms' : {'version': [109, 107]}},
{ 'range': {
'date': {
'gte': start_date1,
'lte': end_date1,
"format": "YYYY-MM-dd'T'HH:mm:ss"
}
}
}
]
}
},
"week2": {
"bool": {
"filter": [
{ 'terms' : {'version': [110, 108]}},
{ 'range': {
'date': {
'gte': start_date2,
'lte': end_date2,
"format": "YYYY-MM-dd'T'HH:mm:ss"
}
}
}
]
}
}
}
},
"aggs": {
"streamCountAll": {"sum": {"field": "streamCount"}}