2017-05-26 75 views
0

我有ElasticSearch分析查詢。它必須通過7d桶累積總和。 另外我使用擴展邊界。 但結果桶從錯誤的日期開始。 Elastic 5.2.2版本。 我做錯了什麼?Elasticsearch日期柱狀圖桶從錯誤日期開始

{ 
    "size": 0, 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "range": { 
      "doc.dateExecute": { 
       "from": "2017-07-11", 
       "to": "2017-07-31", 
       "include_lower": true, 
       "include_upper": true, 
       "boost": 1.0 
      } 
      } 
     } 
     ], 
     "disable_coord": false, 
     "adjust_pure_negative": true, 
     "boost": 1.0, 
     "_name": "onDates" 
    } 
    }, 
    "aggregations": { 
    "time": { 
     "date_histogram": { 
     "field": "doc.dateExecute", 
     "interval": "7d", 
     "offset": 0, 
     "order": { 
      "_key": "asc" 
     }, 
     "keyed": false, 
     "min_doc_count": 0, 
     "extended_bounds": { 
      "min": "2017-07-11", 
      "max": "2017-07-31" 
     } 
     }, 
     "aggregations": { 
     "incomingAmount": { 
      "sum": { 
      "field": "doc.incomingAmount" 
      } 
     }, 
     "outgoingAmount": { 
      "sum": { 
      "field": "doc.outgoingAmount" 
      } 
     } 
     } 
    } 
    } 
} 

但是從水桶開始 「2017-07-06T00:00:00.000Z」 和7天的時間間隔爲 「2017-07-27T00:00:00.000Z」 去。 我錯過了什麼?謝謝!

更新1

我想嘗試查詢的許多變種。不同的時區,範圍,禁用exteneded_bounds,時間間隔爲7天。這隻適用於1-3d的時間間隔。

+0

如果刪除了'extended_bounds' – Val

+0

@val「從」會發生什麼?「2016年9月28日」,「要」:「2017年-10-28「,extended_bounds被移除,無論如何,第一個桶開始於」key_as_string「:」2016-09-29T00:00:00.000Z「,不考慮第一次打擊2016-10-01 – Retardust

+0

這似乎取最接近星期四作爲第一桶日期:) – Retardust

回答

0

好的,後彈性論壇一些會話並註冊了一個錯誤:

1)DateHistogram和ExtendedBounds工作是在ES棘手(5.2至少) DateHistogram開始從UnixEpoch 1970-01-01水桶所以如果你使用天數間隔(如7d或3d等),但需要從左邊界開始桶 - 你需要設置左邊界日期的偏移量(以毫秒爲單位)。 2)但是我們在5.2.2版本上仍然存在一些bug。我們有7天的時間間隔,在星期四(01-01-1970是星期四)有明確的第一桶。所有其他桶都有適當的偏移量。文檔

缺乏,很多奇怪的行爲:(