我进行了此查询,以获取该用户在过去一个月(或一天)中与其他用户相比发出的请求数。
{
"query": {
"bool": {
"must": [
{
"range": {
"created": {
"gte": 1554854400000
}
}
}
]
}
},
"aggs": {
"requests": {
"filters": {
"other_bucket_key": "all",
"filters": {
"user": {
"match": {
"user_id": "XXXXXX"
}
}
}
}
}
}
}
这些是在选定时间段内发出的所有请求。
现在,我想获得与其他用户相比,上个月该用户每天发出的请求数。
我可以使用“日期直方图聚合”获取所请求的总数,但是我不知道如何将其分为用户和其余。
我不知道这是否可行,或者还有另一种方式。
答案 0 :(得分:0)
您走在正确的道路上,只需要将date_histogram
的每日汇总和您已有的过滤器汇总结合起来即可:
{
"query": {
"bool": {
"must": [
{
"range": {
"created": {
"gte": 1554854400000
}
}
}
]
}
},
"aggs": {
"per_day": {
"date_histogram": {
"field": "created",
"interval": "day"
},
"aggs": {
"requests": {
"filters": {
"other_bucket_key": "all",
"filters": {
"user": {
"match": {
"user_id": "XXXXXX"
}
}
}
}
}
}
}
}
}
每天,您将获得用户发出的请求数与所有其他用户发出的请求数。