2016-09-30 9 views
0

POSTリクエストとしてelasticsearchクエリを実行して、作成したインデックスからデータを取得しようとしています。インデックスにあるデータは、logstashによって設定されたMySQL DBのテーブルです。elasticsearchクエリ内にタイムスタンプの範囲を追加するにはどうすればよいですか?

http://localhost:9200/response_summary/_search

ボディ::ここで

が私の要求とJSON体である上記JSON体で

{ 
    "query": { 
     "query_string": { 
      "query": "transactionoperationstatus:\"charged\" AND api:\"payment\" AND operatorid:\"XL\" AND userid:*test AND time:\"2015-05-27*\" AND responsecode:(200+201)" 
     } 
    }, 
    "aggs": { 
     "total": { 
      "terms": { 
       "field": "userid" 
      }, 
    "aggs": { 
     "total": { 
      "sum": { 
       "script": "Double.parseDouble(doc['chargeamount'].value)" 
      } 
     } 
    } 
    } 
} 
} 

、私はquery_string中にtimestampを追加する必要性によ日付範囲内のインデックスからデータを取得します。私が間違っているつもりです

AND timestamp:[2015-05-27T00:00:00.128Z+TO+2015-05-27T23:59:59.128Z]"

:私は、クエリの最後に追加してみましたか?どんな助けもありがとう。

答えて

1

+を削除する必要があるのは、URLクエリ文字列(つまり、スペースをURLエンコード)を使用してクエリを送信する場合にのみ必要ですが、query_stringクエリを使用する場合は実行する必要はありませんその

AND timestamp:[2015-05-27T00:00:00.128Z TO 2015-05-27T23:59:59.128Z]" 
            ^^ 
             | | 
            remove these 
+0

ありがとうございます。 :) – Kulasangar

+1

クール。 '(200 + 201)'の '+'も削除してください。 – Val

関連する問題