我需要在一个查询中找到两个字段的和。我设法找到了一个字段的总和,但在一个查询中添加两个聚合时遇到了困难。
我的JSON看起来像下面这样:
{
"_index": "outboxprov1",
"_type": "message",
"_id": "JXpDpNefSkKO-Hij3T9m4w",
"_score": 1,
"_source": {
"team_id": "1fa86701af05a863f59dd0f4b6546b32",
"created_user": "1a9d05586a8dc3f29b4c8147997391f9",
"created_ip": "192.168.2.245",
"folder": 1,
"post_count": 5,
"sent": 3,
"failed": 2,
"status": 6,
"message_date": "2014-08-20T14:30Z",
"created_date": "2014-06-27T04:34:30.885Z"
}
}
我的搜索查询:
{
"query": {
"filtered": {
"query": {
"match": {
"team_id": {
"query": "1fa86701af05a863f59dd0f4b6546b32"
}
}
},
"filter": {
"and": [
{
"term": {
"status": "6"
}
}
]
}
}
},
"aggs": {
"intraday_return": {
"sum": {
"field": "sent"
}
}
},
"aggs": {
"intraday_return": {
"sum": {
"field": "failed"
}
}
}
}
如何在一个查询中放置两个聚合?请帮我解决这个问题。谢谢大家。
2条答案
按热度按时间js5cn81o1#
您可以使用脚本计算总和
示例:
你的查询应该包含“script”:“doc ['sent']。value+doc['failed']。值”
unguejic2#
可以有多个子聚合