我有许多文档,分别代表starts_at
和的事件ends_at
。在指定的时间点,如果所讨论的事件在starts_at
之前和之后,则该事件被视为活动事件ends_at
。
我正在寻找一个聚合,这应该导致一个日期直方图,其中每个存储桶都包含该间隔中的活动事件数。
到目前为止,我发现的最好的近似值是创建一组计算每个间隔中起始数目的存储桶,以及一组对应的计数终止数目的存储桶,然后通过从中减去起始数目来对其进行后处理每个间隔的结束数:
{
"size": "0",
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"term": {
"_type": "event"
}
},
{
"range": {
"starts_at": {
"gte": "2015-06-14T05:25:03Z",
"lte": "2015-06-21T05:25:03Z"
}
}
}
]
}
}
},
"aggs": {
"starts": {
"date_histogram": {
"field": "starts_at",
"interval": "15m",
"extended_bounds": {
"max": "2015-06-21T05:25:04Z",
"min": "2015-06-14T05:25:04Z"
},
"min_doc_count": 0
}
},
"ends": {
"date_histogram": {
"field": "ends_at",
"interval": "15m",
"extended_bounds": {
"max": "2015-06-21T05:25:04Z",
"min": "2015-06-14T05:25:04Z"
},
"min_doc_count": 0
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似的解决方案。
有没有一种方法可以通过单个查询来实现?
归档时间: |
|
查看次数: |
431 次 |
最近记录: |