gpt4 book ai didi

elasticsearch - Elasticsearch 过滤器聚合,每个桶中有多个过滤器

转载 作者:行者123 更新时间:2023-12-02 22:19:00 24 4
gpt4 key购买 nike

我正在像这样使用过滤器聚合

"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 周版本 A 与第 1 周版本 B,而不是第 1 周与第 2 周。我的查询看起来像

 "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"}}

但是我收到错误“原因”:“没有为 [version] 注册查询”

任何人都可以帮助我解决这个问题,将多个条件添加到过滤器聚合桶中。

最佳答案

您需要像这样将 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"}}

关于elasticsearch - Elasticsearch 过滤器聚合,每个桶中有多个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46334293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com