1

我使用来自 Elasticsearch 的date_histogram聚合,间隔为2d,我也有一个过滤器一个月。例如。从 2019 年 11 月 1 日至 2019 年 11 月 31 日。

我有这样的映射:

PUT test_index/test/_mapping
{
  "properties": {
    "date": {
      "type": "date",
      "format": "yyyy-MM-dd"
    }
  }
}

然后我插入这样的数据:

POST test_index/test
{
  "date": "2019-11-01", 
  "content": "hello world!"
}

POST test_index/test
{
  "date": "2019-11-02", 
  "content": "hello world!"
}

POST test_index/test
{
  "date": "2019-11-03", 
  "content": "hello world!"
}

以下是我的查询:

GET test_index/test/_search
{
  "query": {
    "match_all": {}
  },
  "size": 0, 
  "aggs": {
    "histogram": {
      "filter": {
        "range": {
          "date": {
            "gte": "2019-11-01",
            "lte": "2019-11-30"
          }
        }
      },
      "aggs": {
        "my_histogram": {
          "date_histogram": {
            "field": "date",
            "interval": "2d"
          }
        }
      }
    }
  }
}

我得到这个结果:

{
  ...
  "aggregations" : {
    "histogram" : {
      "meta" : { },
      "doc_count" : 3,
      "my_histogram" : {
        "buckets" : [
          {
            "key_as_string" : "2019-10-31",
            "key" : 1572480000000,
            "doc_count" : 1
          },
          {
            "key_as_string" : "2019-11-02",
            "key" : 1572652800000,
            "doc_count" : 2
          }
        ]
      }
    }
  }
}

我得到第一个带有密钥2019-10-31的存储桶。

我想从2019-11-01开始得到结果。

请大家帮帮我好吗?

我正在使用 Elasticsearch 6.6.1。

4

0 回答 0