我怎么能在我的 elasticsearch 查询中包含 MySQL sum() 和 group by 子句?

How could I have MySQL sum() and group by clause within my elasticsearch query?

我正在尝试将 elasticsearch 查询作为 GET 请求执行,以便从我创建的索引中提取数据。索引中的数据是来自 MySQL 数据库的 table,通过 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 。我尝试在网上搜索它,但找不到任何解决方案。

如有任何帮助,我们将不胜感激。

无论您在查询中 q=... 之后放置什么,都使用与 query_string query 相同的语法,因此您可以重写查询以利用 query_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 中,它看起来像这样: