elasticsearch Elasticsearch按字段分组,elasticsearch,group-by,elasticsearch,Group By" /> elasticsearch Elasticsearch按字段分组,elasticsearch,group-by,elasticsearch,Group By" />

elasticsearch Elasticsearch按字段分组

elasticsearch Elasticsearch按字段分组,elasticsearch,group-by,elasticsearch,Group By,我有一些squid数据,如下所示: {"requestresultcode": "TCP_MISS/200"}, {"requestresultcode": "TCP_MISS/200"}, {"requestresultcode": "TCP_MISS/302"}, {"requestresultcode": "TCP_MISS/504"}, {"requestresultcode": "TCP_MISS/200"}, {"requestresultcode": "ERR_CLIENT_ABO

我有一些squid数据,如下所示:

{"requestresultcode": "TCP_MISS/200"},
{"requestresultcode": "TCP_MISS/200"},
{"requestresultcode": "TCP_MISS/302"},
{"requestresultcode": "TCP_MISS/504"},
{"requestresultcode": "TCP_MISS/200"},
{"requestresultcode": "ERR_CLIENT_ABORT/000"},
{"requestresultcode": "ERR_CLIENT_ABORT/200"},
{"requestresultcode": "ERR_CLIENT_ABORT/302"},
{"requestresultcode": "ERR_CLIENT_ABORT/502"},
{"requestresultcode": "ERR_CONNECT_FAIL/502"}
我想按字段分组,所以我使用了聚合术语

{
  "aggs": {
    "agg1": {
      "terms": {
        "field": "cacheresultcode"
      }
    }
  }
}
我得到的结果是:

"aggregations": {
    "agg1": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "200",
          "doc_count": 2011
        },
        {
          "key": "tcp_miss",
          "doc_count": 1740
        },
        {
          "key": "err_client_abort",
          "doc_count": 705
        },
        {
          "key": "302",
          "doc_count": 244
        },
        {
          "key": "000",
          "doc_count": 185
        },
        {
          "key": "502",
          "doc_count": 24
        },
        {
          "key": "err_connect_fail",
          "doc_count": 23
        },
        {
          "key": "504",
          "doc_count": 4
        }
      ]
    }
  }
使用SQL之间有一些不同,我认为应该是这样的

错误客户端中止/000 错误客户端中止/200 错误客户端中止/302 错误客户端中止/502 错误连接失败/502 TCP_MISS/200 TCP_MISS/302 TCP_MISS/504 我该怎么办?
谢谢你的帮助

如果在其他地方使用分析字段,则可以使用为cacheresultcode创建关键字类型

映射

质疑


希望这有帮助。

您的cacheresultcode字段是一个已分析的字符串,您需要将其设置为关键字,即未分析的字符串。明白!!它非常有用
{
  "mappings": {
    "document_type" : {
      "properties": {
        "cacheresultcode":{
          "type": "text",
          "fields": {
            "keyword" : {
              "type": "keyword"
            }
          }
        }
      }
    }
  }
}
{
  "aggs": {
    "agg1": {
      "terms": {
        "field": "cacheresultcode.keyword"
      }
    }
  }
}