elasticsearch聚合函数

计算每个tag下的商品数量

 

GET /ecommerce/product/_search

{

  "aggs": {  //聚合

    "group_by_tags": { //聚合任意名字

      "terms": { "field": "tags" }  //terms分组字段得到分组数量

    }

  }

}

 

 

对名称中包含yagao的商品,计算每个tag下的商品数量

 

GET /ecommerce/product/_search

{

  "size": 0,

  "query": {

    "match": {

      "name": "yagao"

    }

  },

  "aggs": {

    "all_tags": {

      "terms": {

        "field": "tags"

      }

    }

  }

}

 

 

先分组,再算每组的平均值,计算每个tag下的商品的平均价格

 

GET /ecommerce/product/_search

{

    "size": 0,

    "aggs" : {

        "group_by_tags" : {

            "terms" : { "field" : "tags" },

            "aggs" : {

                "avg_price" : {  //起分组名字

                    "avg" : { "field" : "price" }  //avg聚合函数

                }

            }

        }

    }

}

 

 

计算每个tag下的商品的平均价格,并且按照平均价格降序排序

 

GET /ecommerce/product/_search

{

    "size": 0,

    "aggs" : {

        "all_tags" : {

            "terms" : { "field" : "tags", "order": { "avg_price": "desc" } },

            "aggs" : {

                "avg_price" : {

                    "avg" : { "field" : "price" }

                }

            }

        }

    }

}

 

 

按照指定的价格范围区间进行分组,然后在每组内再按照tag进行分组,最后再计算每组的平均价格

 

GET /ecommerce/product/_search

{

  "size": 0,

  "aggs": {

    "group_by_price": {

      "range": {

        "field": "price",

        "ranges": [

          {

            "from": 0,

            "to": 20

          },

          {

            "from": 20,

            "to": 40

          },

          {

            "from": 40,

            "to": 50

          }

        ]

      },

      "aggs": {

        "group_by_tags": {

          "terms": {

            "field": "tags"

          },

          "aggs": {

            "average_price": {

              "avg": {

                "field": "price"

              }

            }

          }

        }

      }

    }

  }

}

转载于:https://www.cnblogs.com/kesimin/p/9559946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值