首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索date_histogram extended_bounds

弹性搜索date_histogram extended_bounds
EN

Stack Overflow用户
提问于 2016-09-05 01:39:45
回答 1查看 3.8K关注 0票数 3

我想得到date_histogram在特定的时期,如何限制日期的期限?我应该使用extended_bounds参数吗?例如:我想在“2016-08-01”和“2016-08-31”之间查询date_histogram,间隔是天。我对这个表达式提出疑问:

代码语言:javascript
复制
{
  "aggs": {
    "cf_loan": {
      "date_histogram": {
        "field": "createDate",
        "interval": "day",
        "format": "yyyy-MM-dd",
        "min_doc_count": 0,
        "extended_bounds": {
          "min": "2016-08-01",
          "max": "2016-08-31"
        }
      }
    }
  }
}

但我得到的date_histogram不在范围内。

EN

回答 1

Stack Overflow用户

发布于 2016-09-05 03:54:55

快到了,您需要添加一个range查询,以便只选择其createDate字段在所需范围内的文档。

代码语言:javascript
复制
{
  "query": {
    "range": {                           <---- add this range query
      "createDate": {
        "gte": "2016-08-01T00:00:00.000Z",
        "lt": "2016-09-01T00:00:00.000Z"
      }
    }
  },
  "aggs": {
    "cf_loan": {
      "date_histogram": {
        "field": "createDate",
        "interval": "day",
        "format": "yyyy-MM-dd",
        "min_doc_count": 0,
        "extended_bounds": {
          "min": "2016-08-01",
          "max": "2016-08-31"
        }
      }
    }
  }
}

extended_bounds参数的作用是确保从minmax每天都能得到桶,即使其中没有文档。例如,假设你在2016-08-04和2016-08-28之间每天有一份文件,那么如果没有extended_bounds参数,你就会得到25个桶(2016-08-04,2016-08-05,2016-08-06,.,2016-08-28)。

使用extended_bounds参数,您还可以获得以下存储桶,但使用的是0文档:

  • 2016-08-01
  • 2016-08-02
  • 2016-08-03
  • 2016-08-29
  • 2016-08-30
  • 2016-08-31
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39322942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档