2017-03-20 23 views
0

デフォルトのtimestampフィールドで、dateの値を無視する、つまりタイムスタンプの時間のみを使用して、つまり毎日2時間ごとに範囲クエリを作成できますか?elasticsearchの@timestamp範囲クエリ

私はすべての文書を検索しますが、午後9時から午前12時の間に索引付けされた文書は除外したいと考えています(フィルタリングの日付範囲の例があります)。

"@timestamp": [ 
        "2015-12-21T15:18:17.120Z" 
       ] 

Elasticsearchバージョン:1.5.2

答えて

0

私の最初のアイデアはElasticsearchクエリで日付の計算を使用することです、例えば

タイムスタンプの例では、次のスタンド1PMでクエリを実行した場合、これは動作します:

{ 
    "query": { 
     "range" : { 
      "@timestamp" : { 
       "gte": "now-16h/h", 
       "lte": "now-1h/h" 

      } 
     } 
    } 
} 

(タイムゾーンは注意してください)。

私が知る限り、唯一の可能性はscriptingです。

非常に旧バージョンのElasticsearchを実行していることにも注意してください。

編集あなたは、単に絶対的な日付を必要とする場合には、その後、どのようにあなたの@timestampフィールドの外観をチェックして、私のElasticsearch上のインスタンスのために、同じフォーマットを使用し、それは次のようになります。意図的に

{ 
    "query": { 
     "range" : { 
      "@timestamp" : { 
       "gte": "2015-03-20T01:21:00.01Z", 
       "lte": "2015-03-21T01:12:00.04Z" 

      } 
     } 
    } 
} 
+0

、私は日付を書きました私は毎日質問しているようではなく、1年前のデータを照会することができます) – Umer

+0

基本的に、日付の書式がどのようになっているかを慎重に調べる必要があります。私の編集版を見る – Adonis

関連する問題