gpt4 book ai didi

elasticsearch - 根据顶级过滤器聚合创建不同的子聚合

转载 作者:行者123 更新时间:2023-12-03 01:14:24 24 4
gpt4 key购买 nike

我正在将过滤器聚合与ElasticSearch结合使用,并且在该聚合中,我想知道是否可以根据不同的过滤器存储区创建不同的子聚合。就我而言,我从两个来源chromeelectron进行汇总。对于每个来源,我想运行不同的子聚合。以下是我当前的聚合哈希:

aggs: {
**top_level_agg,
sources: {
filters: {
filters: {
chrome: { term: { source: TrackingEvent::CHROME_SOURCE } },
electron: { term: { source: TrackingEvent::ELECTRON_SOURCE } }
}
},
aggs: {
**chrome_specific_agg,
**electron_specific_agg
}
}
}
这是可行的,但并不理想,因为 Chrome 和电子滤镜的aggs结果都包含特定于 Chrome 的和电子特定的aggs。如果我可以做这样的事情会更好(我知道这行不通):
aggs: {
**top_level_agg,
sources: {
filters: {
filters: {
chrome: {
term: { source: TrackingEvent::CHROME_SOURCE },
aggs: {
**chrome_specific_agg
}
},
electron: {
term: { source: TrackingEvent::ELECTRON_SOURCE },
aggs: {
**electron_specific_agg
}
}
}
}
}
}
我不确定使用ES是否可行,但我想问一下。关于如何进行这项工作的任何想法?

最佳答案

你当然可以。只是要稍微调整嵌套度即可:

{
"aggs": {
"top_level_agg": {},
"chrome_specific_agg_name": {
"filter": {
"term": {
"source": "TrackingEvent::CHROME_SOURCE"
}
},
"aggs": {
"chrome_specific_agg": {}
},
"electron_specific_agg_name": {
"filter": {
"term": {
"source": "TrackingEvent::ELECTRON_SOURCE"
}
},
"aggs": {
"electron_specific_agg": {}
}
}
}
}

关于elasticsearch - 根据顶级过滤器聚合创建不同的子聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63156352/

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