使用elasticsearch的时间戳直方图

时间:2015-02-23 15:46:11

标签: elasticsearch timestamp

假设我的文档都有一个(毫秒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分钟。我无法让它与一小时后开始工作的小桶一起工作。我该怎么办?

1 个答案:

答案 0 :(得分:1)

由于没有考虑到闰年修正,您的方法肯定会中断。同样在月度直方图的情况下,还需要提供大量额外信息。 我建议直接使用日期直方图,因为值已经是格式,Elasticsearch将日期存储为。 以下应该会给你更好的结果 -

{
  "aggs": {
    "dates": {
      "date_histogram": {
        "field": "date",
        "interval": "30m"
      }
    }
  }
}