elasticsearch elasticsearch如何查找出现次数
我想知道是否可以将此sql查询转换为ES查询? 按应用程序类别从错误组中选择前10个应用程序,类别,计数(*)elasticsearch elasticsearch如何查找出现次数,elasticsearch,elasticsearch,我想知道是否可以将此sql查询转换为ES查询? 按应用程序类别从错误组中选择前10个应用程序,类别,计数(*) 或者在英语中,它会回答:“显示顶级应用程序、cat及其计数”,因此这将按多个字段分组,并返回名称和计数 就是您要寻找的。要在多个字段的组合上进行聚合,您必须使用术语聚合中的脚本,如下所示: POST <index name>/<type name>/_search?search_type=count { "aggs": { "app_cat": {
或者在英语中,它会回答:“显示顶级应用程序、cat及其计数”,因此这将按多个字段分组,并返回名称和计数 就是您要寻找的。要在多个字段的组合上进行聚合,您必须使用
术语聚合中的脚本,如下所示:
POST <index name>/<type name>/_search?search_type=count
{
"aggs": {
"app_cat": {
"terms": {
"script" : "doc['app'].value + '#' + doc['cat'].value",
"size": 10
}
}
}
}
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 10,
"max_score": 0,
"hits": []
},
"aggregations": {
"app_cat": {
"buckets": [
{
"key": "app2#cat2",
"doc_count": 4
},
{
"key": "app1#cat1",
"doc_count": 3
},
{
"key": "app2#cat1",
"doc_count": 2
},
{
"key": "app1#cat2",
"doc_count": 1
}
]
}
}
}
在客户端,您可以通过字符串操作从聚合响应中获取app
和cat
字段的单个值
在较新版本的Elasticsearch中,由于安全原因,默认情况下禁用脚本。如果您想启用脚本,请阅读。我已经尝试过:{“聚合”:{“应用程序聚合”:{“术语”:{“字段”:“应用程序”},“聚合”:{“猫聚合”:{“术语”:{“字段”:“猫”}}}},但它不起作用。另外,是否必须是_search或_countquery?对于聚合,它们中的任何一个都可以。谢谢,您的解决方案很有效。还有一个问题。有没有一种方法可以抑制内部的“点击”以仅返回您的输出显示的内容?{“take”:3,“timed_out”:false,{“shards”:{“total”:5,“successful”:5,“failed”:0},“hits”:{“total”:10,“max_score”:0,“hits”:[]<==就像这里},“聚合”:{“app_cat”:{“bucket”:……….我认为您无法摆脱响应中的点击数
部分。