{
"aggs": {
"by_countryCode": {
"terms": {
"field":"countryCode.keyword",
"size": 100
},
"aggs": {
"views": {"sum": {"field": "views"}},
"shares": {"sum": {"field": "shares"}}
}
}
},
"query": {
"bool": {
"must": [
{ "match": { "userId": 1 } },
{ "match": { "artistId": 1001 }},
{ "range": {
"date" : {
"gte" : "20170310",
"lte" : "20170312"
}
}
}
]
}
}
}这将返回匹配的项,还会给我聚合结果。聚合是按国家/地区代码分组的视图和共享的总和。
但我想要另一个sum聚合。我想要“总金额”和“总股份”,我怎么才能做到呢?
谢谢!
发布于 2017-04-12 03:36:19
在最顶层添加两个额外的聚合应该可以做到这一点:
{
"aggs": {
"by_countryCode": {
"terms": {
"field":"countryCode.keyword",
"size": 100
},
"aggs": {
"views": {"sum": {"field": "views"}},
"shares": {"sum": {"field": "shares"}}
}
},
"total_views": {
{"sum": {"field": "views"}}
},
"total_shares": {
{"sum": {"field": "shares"}}
},
"query": {
"bool": {
"must": [
{ "match": { "userId": 1 } },
{ "match": { "artistId": 1001 }},
{ "range": {
"date" : {
"gte" : "20170310",
"lte" : "20170312"
}
}
}
]
}
}
}发布于 2017-04-12 04:14:02
{
"aggs": {
"by_countryCode": {
"terms": {
"field":"countryCode.keyword",
"size": 100
},
"aggs": {
"views": {"sum": {"field": "views"}},
"shares": {"sum": {"field": "shares"}}
}
},
"total_views": {
"sum": {"field": "views"}
},
"total_shares": {
"sum": {"field": "shares"}
}
},
"query": {
"bool": {
"must": [
{ "match": { "userId": 1 } },
{ "match": { "artistId": 1001 }},
{ "range": {
"date" : {
"gte" : "20170310",
"lte" : "20170312"
}
}
}
]
}
}
}谢谢,罗曼!
在你的代码的帮助下,我做了一些小改动。它起作用了!
https://stackoverflow.com/questions/43353995
复制相似问题