我试图聚合两个字段的总和,但似乎无法使语法正确。
我们说我有以下聚合:
{
"aggregations": {
"byDay": {
"date_histogram": {
"field": "@timestamp",
"interval": "1d"
},
"aggregations": {
"sum_a": {
"sum": {
"field": "a"
}
},
"sum_b": {
"sum": {
"field": "b"
}
},
"sum_a_and_b": {
/* what goes here? */
}
}
}
}
}

我真正想要的是一个聚合,它是字段a和b的总和。
这似乎很简单,但是我试图让它正确。在线示例要么过于简单(仅在一个字段上进行总结),要么尝试做的远不止这些,所以我发现它们没有用。
答案 0 :(得分:1)
尝试使用script生成条款的术语聚合:
"aggs": {
"sum_a_and_b": {
"terms": {
"script": "doc['a'].value + doc['b'].value"
}
}
}
为了enable dynamic scripting将以下内容添加到配置文件中(默认为elasticsearch.yml
):
script.aggs: true # enable just for aggregations