聚合操作

一、聚合函数(avg、sum、max、min...)

   GET goods/fruit/_search
   {
       "size": 0 # 条数为0,只展示聚合结果
       "aggs": {
           # avg_age聚合后的别名(随意起)
           "avg_age": {
               "avg": {
                   "fields": "age"
               }
           }
       }
   }

二、条件聚合

"""
注意:聚合函数的使用,一定是先查询,再聚合
"""
1、GET goods/fruit/_search (分组后再聚合)
   {
       "size": 0 # 条数为0,只展示聚合结果
       "query": {
           "match": {
               "name": "zqx"
           }
       }
       "aggs": {
           # avg_age聚合后的别名(随意起)
           "avg_age": {
               "avg": {
                   "fields": "age"
               }
           }
       }
   }
2、GET goods/fruit/_search复杂条件聚合
   {
       "query": {
           "bool": {
               "must": [
                   {
                       "match": {
                           "name": "zqx"
                       }
                   }
               ],
              "filter": {
                   "range": {
                       "age": {
                           "gte": 18
                       }
                   }
               }
           } 
       },
       "aggs": {
           "avg_age": {
               "avg": {
                   "field": "age"
               }
           }
       }
   }

三、嵌套聚合

GET goods/_search
{
    "size": 0
    "aggs": {
        "agessssss": {
            # 分段聚合
            "range": {
                "field": "age",
                "range": [
                    {
                        "from": 0,
                        "to": 10
                    },
                    {
                        "from": 10,
                        "to": 20
                    },
                    {
                        "from": 20,
                        "to": 30
                    },
                ]
            },
            "aggs": {
                "sum_ages": {
                    "sum": {
                        "field": "age"
                    }
                }
            }
        }
    }
}

你可能感兴趣的:(聚合操作)