2017-02-22 4 views
0

私はelasticsearch 2.3で日付範囲の集計を試しています。過去30日間、過去7日間、そして今日のようにそれらを集計したいと思います。従って私の集約クエリの一部を次のようelasticsearchで今機能する問題

"range": { 
    "ranges": [ 
     { 
     "from": "now-30d/d", 
     "to": "now/d" 
     }, 
     { 
     "from": "now-7d/d", 
     "to": "now/d" 
     }, 
     { 
     "from": "now/d", 
     "to": "now+1d/d" 
     } 
    ], 
    "format": "yyyy-MM-dd" 
    } 

これは以下のバケットで得られている。

"buckets": [ 
    { 
     "key": "2017-01-23-2017-02-22", 
     "from": 1485129600000, 
     "from_as_string": "2017-01-23", 
     "to": 1487721600000, 
     "to_as_string": "2017-02-22", 
     "doc_count": 6 
    }, 
    { 
     "key": "2017-02-15-2017-02-22", 
     "from": 1487116800000, 
     "from_as_string": "2017-02-15", 
     "to": 1487721600000, 
     "to_as_string": "2017-02-22", 
     "doc_count": 6 
    }, 
    { 
     "key": "2017-02-22-2017-02-23", 
     "from": 1487721600000, 
     "from_as_string": "2017-02-22", 
     "to": 1487808000000, 
     "to_as_string": "2017-02-23", 
     "doc_count": 0 
    } 
    ] 

次のようにelasticsearchがインストールされているマシンでdateコマンドの出力である:

Tue Feb 21 23:01:59 PST 2017 

バケットからわかるように、elasticsearch関数now2017-02-22と評価されていますが、それは2017-02-21。私はここで何が欠けていますか?

ありがとうございます。

+1

はtime_zoneパラメータの影響を受けません(日付はUTCとして保存する必要があります)。タイムゾーンをUTCに変更してください – user3775217

+0

https://discuss.elastic.co/t/several-date-math-questions/27453/4 – user3775217

答えて

0

ドキュメントをもう一度読んだ後、now関数はelasticsearchがインストールされているマシンのタイムゾーンではなく、UTCタイムを使用することを理解しました。したがって、この現象は見られた。これは、日付範囲集約でtime_zone属性を指定できるelasticsearchの最新バージョンで修正されています。この問題はここで追跡されます。 https://github.com/elastic/elasticsearch/issues/10130