我正在像这样使用过滤器聚合
"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"}}
}
},
Run Code Online (Sandbox Code Playgroud)
这会尝试查找两个单独星期的流以进行比较。现在我想添加版本号。我尝试执行 week1 版本 A 与 week 1 版本 B,而不是 week1 与 week2。我的查询看起来像
"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"}}
Run Code Online (Sandbox Code Playgroud)
但是我收到错误“原因”:“没有为 [版本] 注册查询”
任何人都可以帮助我,将多个条件添加到过滤器聚合桶中。
您需要bool/filter像这样将查询添加到组合中:
"aggs": {\n "streams": {\n "filters": {\n "filters": {\n "week1": {\n "bool": { \n "filter": [\n {\xc2\xa0\'terms\' : {\'version\': [109, 107]}}, \n { \'range\': {\n \'date\': {\n \'gte\': start_date1,\n \'lte\': end_date1,\n "format": "YYYY-MM-dd\'T\'HH:mm:ss"\n }\n }\n }\n ]\n }\n },\n "week2": {\n "bool": { \n "filter": [\n {\xc2\xa0\'terms\' : {\'version\': [110, 108]}}, \n { \'range\': {\n \'date\': {\n \'gte\': start_date2,\n \'lte\': end_date2,\n "format": "YYYY-MM-dd\'T\'HH:mm:ss"\n }\n }\n }\n ]\n }\n }\n }\n },\n "aggs": {\n "streamCountAll": {"sum": {"field": "streamCount"}}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2653 次 |
| 最近记录: |