0
假设我在ES中有这些数据。按用户定义的组elasticsearch聚合
| KEY | value |
|:-----------|------------:|
| A | 1|
| A | 2|
| B | 2|
| C | 3|
| D | 4|
| E | 5|
| E | 5|
| F | 6|
我用这个
{
"from": 0,
"size": 0,
"query": {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"bool" : {
"must" : [
{"terms": {"key": ["A", "B", "C", "D", "E", "F"]}}
]
}
}
}
},
"aggs" : {
"sum_value" : {
"terms" : { "field" : "key" },
"aggs" : {
"sum_value" : { "sum" : { "field" : "value" } }
}
}
}
}
得到同样关键的总和,结果是这样的:
"sum_uv": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "A",
"doc_count": 2,
"sum_value": {
"value": 3
}
}
....
]
}
但现在,我要总结的所有元素例如,在同一组中,我有一个映射数据,它告诉我组信息:
group1 = [A, B, C]
group2 = [D, E, F]
.....
我想我需要一个嵌套聚合的目的,但我不知道这样做。
结果是这样的:
sum_group1 = 8
sum_group2 = 20
......
提前感谢!
谢谢,但是现在的情况是,我不能给文档添加任何东西并且组关系数据从另一个数据库中获取。这个小组没有任何模式。 –
@JasonYoung添加使用过滤器聚合的示例。这是你所要求的那种行为吗? – Peter
不错!那就对了。 2是我想要的! –