繁体   English   中英

elasticsearch date_histogram offset和extended_bounds不能一起使用吗?

[英]elasticsearch date_histogram offset and extended_bounds don't work together?

我正在做一个以周为间隔的date_histogram。 我需要我的周从星期日而不是星期一开始,并且我需要结果包括没有文档(空记录)的几周。

为了得到我使用offset = -1d将开始更改为星期日,并使用extended_bounds获取空记录。

elasticsearch很好地计算出间隔的第一天,因此,如果我提供一个星期三说的开始日期,我会得到前一个星期日开始的那一周的记录。

问题是,如果我将offset设置为-1d,我将获得额外的一周时间。 我的假设是,它计算间隔的第一天而不考虑偏移量。

在所示的示例中,我不希望获得2017-09-24记录:

查询:

{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "utility.utility_uuid.orig": "17245998142979832061"
          }
        },
        {
          "range": {
            "user.date_created": {
              "gte": "2017-10-01",
              "lt": "2017-10-31"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "eow_accounts_and_users": {
      "date_histogram": {
        "format": "yyyy-MM-dd",
        "interval": "week",
        "offset": "-1d",
        "time_zone": "US/Pacific",
        "field": "user.date_created",
        "min_doc_count": 0,
        "extended_bounds": {
          "min": "2017-10-01",
          "max": "2017-10-31"
        }
      }
    }
  }
}

结果:

{
  "took": 9,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": 0,
    "hits": []
  },
  "aggregations": {
    "eow_accounts_and_users": {
      "buckets": [
        {
          "key_as_string": "2017-09-24",
          "key": 1506236400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2017-10-01",
          "key": 1506841200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2017-10-08",
          "key": 1507446000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2017-10-15",
          "key": 1508050800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2017-10-22",
          "key": 1508655600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2017-10-29",
          "key": 1509260400000,
          "doc_count": 0
        }
      ]
    }
  }
}

在延伸范围外增加一天:

"extended_bounds": {
    "min": dateParams.startTime+86400000, // an extra day
    "max": dateParams.endTime
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM