假设我的文档都有一个(毫秒)timestamp
字段作为int
。我想找到每小时有多少文件,但是从半小时开始。在更多细节中:假设第一个有趣的时间戳minTS
是:1423747800000
(或星期四,2015年2月12日13:30:00 GMT),maxTS
现在是。"aggs": {
"time": {
"histogram": {
"field": "timestamp",
"interval": 3600000,
"min_doc_count" : 0,
"extended_bounds" : {
"min" : minTS,
"max" : maxTS
}
}
}
}
。如果我运行以下聚合:
1423746000000
第一个返回的桶是interval
(即星期四,2015年2月12日13:00:00 GMT)。如果我将1800000
更改为{{1}},那么我会在正确的时间启动第一个存储桶,但它只需要30分钟。我无法让它与一小时后开始工作的小桶一起工作。我该怎么办?
答案 0 :(得分:1)
由于没有考虑到闰年修正,您的方法肯定会中断。同样在月度直方图的情况下,还需要提供大量额外信息。 我建议直接使用日期直方图,因为值已经是格式,Elasticsearch将日期存储为。 以下应该会给你更好的结果 -
{
"aggs": {
"dates": {
"date_histogram": {
"field": "date",
"interval": "30m"
}
}
}
}