2016-10-20 26 views
0

私は自分のElasticsearch文書に日付フィールドを持っています。 私はそのフィールドに集約しています。時間をタイムゾーンに調整

これは私のクエリ

GET _search 
{ 
    "size": 0, 
    "aggregations": { 
    "timeslice": { 
    "histogram": { 
     "script": "doc['ad_inTime'].date.getHourOfDay()", 
     "interval": 1, 
     "min_doc_count": 0, 
     "extended_bounds": { 
      "min": 0, 
      "max": 23 
     }, 
     "order": { 
      "_key": "desc" 
     }, 
     "offset":0 
    } 
    } 
} 
} 

ある今、私はこの行に(オフセットまたはタイムゾーン名-方が動作)タイムゾーン情報を渡したい:

"script": "doc['ad_inTime'].date.getHourOfDay()", 

と日付がタイムゾーンに調整しますそれを行う方法はありますか?

答えて

1

あなたはこのようなスクリプトにパラメータとしてタイムゾーンを渡すことができます。

{ 
    "size": 0, 
    "aggregations": { 
    "timeslice": { 
     "histogram": { 
     "script": { 
      "inline": "doc['openDate'].date.setZone(DateTimeZone.forID(tz)); doc['openDate'].date.getHourOfDay()", 
      "params": { 
      "tz": "Europe/London" 
      } 
     }, 
     "interval": 1, 
     "min_doc_count": 0, 
     "extended_bounds": { 
      "min": 0, 
      "max": 23 
     }, 
     "order": { 
      "_key": "desc" 
     }, 
     "offset": 0 
     } 
    } 
    } 
} 
+0

感謝の男、それがスクリプト全体の事は私が多くを読むことができるいくつかのオンラインリソースを提案me.Canを不可解さworked.This? –

+1

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html – Val

関連する問題