首页 > 解决方案 > elasticsearch date_histogram 会检查间隔内的日期是否存在?如果是这样,会发生什么?如果对此没有任何错误处理

问题描述

到目前为止,我正在研究 ES 日期直方图以获得每月结果,我的查询就像

{
  "aggs": {
    "sales_over_time": {
      "date_histogram": {
        "field": "date",
                "calendar_interval": "1M",
                "offset":    Cutoff          

      }
    }
  }
}

回报就像

                  date
1             10978.521    2020-11-20    5995.69  
2             11177.911    2020-12-20     199.39  
3             11177.911    2021-01-20       0.00  

所以我的问题是:如果日期“20”不存在怎么办?以及来自 ES 的任何错误处理?谢谢

杰夫

标签: elasticsearch

解决方案


由于它是每月日期直方图,因此每个存储桶都必须有一个日期键。该日期键是每月存储桶开始的日期。例如,2020-11-20是键和从该日期开始的存储桶的开始日期。在该存储桶中,您将找到日期介于2020-11-20和之间的所有文档2020-12-20

对于从 开始的最后一个存储桶也是如此2021-01-20,它将包含从该日期开始并经过的所有文档2021-02-20。您是否拥有日期字段专门针对这些存储桶关键日期的文档并不重要,这些键只是间隔界限。


推荐阅读