2016-09-29 1 views
0

나는 GET 요청으로 elasticsearch 쿼리를 수행하여 내가 만든 색인에서 데이터를 가져 오려고합니다. 인덱스에있는 데이터는 MySQL DB의 테이블이며 logstash이지만 구성되어 있습니다.내 elasticsearch 쿼리에서 MySQL sum() 및 group by 절을 사용하려면 어떻게해야합니까?

여기 IN 절없이 내 요청입니다 : 위에서

http://localhost:9200/response_summary/_search?q=api:"location"+AND+transactionoperationstatus:"charged"+AND+operatorid='DIALOG'+AND+userid:test+AND+time:"2015-05-27"

, 나는 sum(chargeAmount+0) & group by를 추가 할 수 있어야한다. 웹에서 검색을 시도했지만 해결책을 찾지 못했습니다.

도움이 될 수 있습니다. 당신이 원하는 합 계산 query_string 사용 집계를 활용하여 쿼리를 다시 작성할 수 있도록 쿼리에서 q=...가하는 query_string query과 같은 구문을 사용 후 넣어 무엇이든

답변

1

: 우편 배달부에서

curl -XPOST http://localhost:9200/response_summary/_search -d '{ 
    "query": { 
     "query_string": { 
      "query": "api:\"location\" AND transactionoperationstatus:\"charged\" AND operatorid:\"DIALOG\" AND userid:test AND time:\"2015-05-27\" AND responseCode:(401 403)" 
     } 
    }, 
    "aggs": { 
     "total": { 
      "terms": { 
       "field": "chargeAmount" 
      }, 
      "aggs":{ 
      "total": { 
       "sum": { 
        "field": "chargeAmount" 
       } 
      } 
      } 
     } 
    } 
}' 

을, 그것을 이과 같습니다

enter image description here

+0

하지만 나는 거 우체부 또는 무언가에서이'curl' 요청을 게시하고 어떻게? 'postman'을 사용하여이 컬을 가져 오려고했지만'잘못된 형식 '이라고 말합니다. – Kulasangar

+1

내 대답을 업데이 트했습니다 – Val

+0

"aggs": { "총": { "합": { "필드": "chargeAmount" } } } 무엇 위의 합계를 얻기 위해 그것을 않습니다 위의 컬 요청에서'chargeAmount'? 문제는, 내 데이터베이스의 필드 (chargeAmount)는'varchar'이고 여기서'sum'은 숫자 값을 기대합니다. 안 그래? – Kulasangar