我有一个错误索引,其中包含php应用程序记录的所有错误。现在,我想要一个DSL查询器通过消息以及计数返回明显的错误。
类似于mysql查询:
SELECT *, COUNT(*) AS total FROM
错误GROUP BY
消息;
映射我的索引:
"mappings": {
"errors": {
"properties": {
"message": {
"type": "keyword"
},
"trace": {
"type": "keyword"
},
"file": {
"type": "keyword"
}
}
}
}
预期结果:
消息|档案|计数
未定义的变量$ param在index.php的第20行| project / index.php | 10
helper.php中第15行的未定义变量$ opt | project / helper.php | 4
..........
我正在使用弹性搜索5.6。预先感谢。
答案 0 :(得分:1)
top hits聚合可以帮助您实现这一目标。
GET errors/_search?size=0
{
"aggs": {
"error-counts": {
"terms": {
"field": "message"
},
"aggs": {
"messages": {
"top_hits": {
"size": 100
}
}
}
}
}
}
这将为每个消息创建存储桶,每个存储桶中的总数,并在每个存储桶中列出100条记录。