0

我正在尝试将elasticsearch查询作为GET请求执行,以便从我创建的索引中提取数据。索引中的数据是来自MySQLDB 的表,但已配置logstash

这是我没有 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。我尝试在网上搜索它,但找不到任何解决方案。

任何帮助都可以得到赞赏。

4

1 回答 1

1

无论您在查询中放置什么,都使用与查询q=...相同的语法,因此您可以重写查询以利用和使用聚合来计算所需的总和:query_stringquery_string

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"
                }
             }
          }
      }
   }
}'

在 Postman 中,它看起来像这样:

在此处输入图像描述

于 2016-09-29T08:41:56.183 回答