elasticsearch对某段时间范围内按照小时的间隔进行统计, 然后再按照小时进行统计
时间: 2023-07-01 15:25:53 浏览: 189
可以使用两层date_histogram聚合来实现对某段时间范围内按照小时的间隔进行统计,然后再按照小时进行统计。
例如,要统计某个索引(index)中某个时间字段(timestamp)在2019年1月1日到2019年1月31日之间,以每小时为时间间隔进行统计,然后再按照小时进行统计,可以使用以下的聚合查询:
```
GET index/_search
{
"size": 0,
"aggs": {
"hourly_stats": {
"date_histogram": {
"field": "timestamp",
"interval": "1h",
"min_doc_count": 1,
"extended_bounds": {
"min": "2019-01-01T00:00:00",
"max": "2019-01-31T23:59:59"
}
},
"aggs": {
"hourly_stats": {
"date_histogram": {
"field": "timestamp",
"interval": "1h",
"min_doc_count": 1
}
}
}
}
}
}
```
这个聚合查询会返回每小时的统计结果,包括bucket的key(即具体的时间)和对应的文档数量、平均值、最大值、最小值等指标,然后再将每小时的结果按照小时进行统计。如果需要统计其他的时间间隔,可以根据实际需要修改interval参数。
阅读全文