我有一个错误索引,其中包含php应用程序记录的所有错误。现在,我想要DSL查询器通过消息以及计数返回明显的错误。
类似于mysql查询:SELECT *, COUNT(*) AS total FROM 错误GROUP BY消息;映射我的索引:

"mappings": {
  "errors": {
    "properties": {
      "message": {
        "type": "keyword"
      },
      "trace": {
        "type": "keyword"
      },
      "file": {
        "type": "keyword"
      }
    }
  }
}
预期结果:

我正在使用 flex 搜索5.6。提前致谢。

最佳答案

我认为top hits聚合可以帮助您实现目标。

GET errors/_search?size=0
{
  "aggs": {
    "error-counts": {
      "terms": {
        "field": "message"
      },
      "aggs": {
        "messages": {
          "top_hits": {
            "size": 100
          }
        }
      }
    }
  }
}

这将为每个消息创建存储桶,每个存储桶中的总数,并在每个存储桶中列出100条记录。

关于elasticsearch - 如何在Elasticsearch中实现此sql查询结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57668549/

10-13 03:38