我怎么能在我的 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 子句的请求:
在上面,我应该可以附加 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 中,它看起来像这样:
我正在尝试将 elasticsearch
查询作为 GET
请求执行,以便从我创建的索引中提取数据。索引中的数据是来自 MySQL
数据库的 table,通过 logstash
.
这是我没有 IN 子句的请求:
在上面,我应该可以附加 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 中,它看起来像这样: