elasticsearch每周日期直方图如何确定日期

时间:2018-02-07 12:52:51

标签: elasticsearch

我在包含字段samplingDate和字段users的索引上运行每周日期直方图聚合。这是我的问题:

{
  "query": {
    "range": {
     "samplingDate": {
       "gte": "2016-08-14",
       "lte": "2016-09-12"
     }
   }
 },
 "aggs": {
   "dateagg": {
     "date_histogram": {
       "field": "samplingDate",
       "interval": "week"
     },
     "aggs": {
        "totalusers": {
          "max": {
           "field": "users"
         }
      }
    }
   }
 }  
}

该桶返回一组结果,其中第一个日期是2016-08-08(超出范围,为什么?),后续日期相隔7天。我的问题是,elasticsearch如何确定在每周聚合中显示哪些日期,以及我必须做什么才能使存储桶中的最后一项具有上限的日期(在本例中为2016-09-12)。 Elasticsearch版本是2.3。

感谢。

2 个答案:

答案 0 :(得分:1)

2016-08-14是一个星期日,date_histogram桶聚合,week间隔根据“周开始”(即星期一)计算边界,这就是为什么第一个桶是2016年-08-08。

但是,您可以在日期直方图存储桶中添加top_hits子聚合,并且您将看到您只有2016-08-14之后的文档(即基于您的查询)。

答案 1 :(得分:0)

如果给定了周间隔,则直方图结果中的每个日期从“星期一”开始。