【发布时间】:2020-07-29 23:24:57
【问题描述】:
我正在使用带有 ElasticSearch 的过滤器聚合,在该聚合中,我想知道是否可以根据不同的过滤器存储桶创建不同的子聚合。就我而言,我从两个来源进行汇总 chrome 和 electron。对于每个来源,我想运行不同的子聚合。以下是我当前的聚合哈希:
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
}
}
}
这可行但并不理想,因为铬和电子过滤器 aggs 结果都包含铬特定和电子特定的 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 是否可以做到这一点,但我想我会问。关于如何完成这项工作的任何想法?
【问题讨论】:
标签: elasticsearch