2016-09-30 2 views
0

나는 내가 만든 색인에서 데이터를 가져 오기 위해 POST 요청으로 elasticsearch 쿼리를 수행하려고합니다. 인덱스에있는 데이터는 logstash이지만 MySQL DB의 테이블입니다.elasticsearch 쿼리에 타임 스탬프 범위를 어떻게 추가 할 수 있습니까?

바디

http://localhost:9200/response_summary/_search

: 위의 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를 추가하려면 여기를

내 요청과 JSON 몸 날짜 범위 내의 색인에서 데이터를 가져옵니다. 내가 잘못 가고

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

: 나는 같이 쿼리의 끝에 추가 시도? 어떤 도움을 주시면 감사하겠습니다.

답변

1

query_string 쿼리를 사용하는 경우 URL 쿼리 문자열 (예 : 공백을 URL 인코딩)을 통해 쿼리를 보낼 때만 필요하기 때문에 +을 제거하면됩니다. 그

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

감사합니다. :) – Kulasangar

+1

쿨. 또한'(200 + 201)'에서'+' – Val