如何从返回的数据中分组相同的值?

时间:2019-07-19 06:13:49

标签: elasticsearch elasticsearch-aggregation

我有从查询中返回的数据。在此数据中,我想对“值”字段进行分组,并通过其值字段再次返回这些数据。

这是输出数据:


[
  {
    "Group2": {
      "buckets": [
        {
          "doc_count": 114, 
          "key": "xr", 
          "max_page": {
            "value": null
          }
        }, 
        {
          "doc_count": 37, 
          "key": "fluence", 
          "max_page": {
            "value": 8.0
          }
        }, 
        {
          "doc_count": 32, 
          "key": "macit", 
          "max_page": {
            "value": 4.0
          }
        }, 
        {
          "doc_count": 31, 
          "key": "com", 
          "max_page": {
            "value": 3.0
          }
        }, 
        {
          "doc_count": 31, 
          "key": "crypto", 
          "max_page": {
            "value": null
          }
        }, 
        {
          "doc_count": 28, 
          "key": "cross", 
          "max_page": {
            "value": null
          }
        }, 
        {
          "doc_count": 24, 
          "key": "a", 
          "max_page": {
            "value": 16.0
          }
        }, 
        {
          "doc_count": 20, 
          "key": "sleep", 
          "max_page": {
            "value": 19.0
          }
        }, 
        {
          "doc_count": 19, 
          "key": "nfinite", 
          "max_page": {
            "value": 2.0
          }
        }, 

这是我的查询:


        body = {
            "aggs": {
                "Group1": {
                    "terms": {
                        "field": "method.keyword",
                        "include": ".*POST.*",
                    },
                    "aggs": {
                        "Group2": {
                            "terms": {
                                "field": "contains.keyword",
                                "size": 11513,

                            },
                            "aggs": {
                                "Group3": {
                                    "terms": {
                                        "field": "page",
                                        "order": {"_key": "desc"},
                                        "size":1

                                    }
                                }

                            },
"aggs" : {
        "max_page" : { "max" : { "field" : "page" } }
    },
                        }
                    },



                }

            }

        }

        res=es.search(index='apilog',body=body)

我只想通过查看数据的值对数据进行分组。它需要产生一个值字段,然后显示相关值的关键字。对于上述问题,必须有一个包含“ cross”,“ crypto”数据的“ null”字段。

0 个答案:

没有答案