• 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"

                  }

                }

              }

            }

          }

        }

      }

    }

  • 相关阅读:
    JAXB和XStream比较
    CButtonST类公共接口函数的介绍
    為什麼我的派生按鈕的自畫ownerdraw功能總是出錯?
    vc里使用GDI+
    cdecl, stdcall, pascal,fastcall 都有什么区别,具体是什么调用约定?
    SDK编程中窗口ID,句柄,指针三者相互转换函数
    __declspec,__cdecl,__stdcall都是什么意思?
    OnDraw()和OnPaint()
    栈 堆 区别
    MSDN for Visual Studio 6.0 高速下载地址
  • 原文地址:https://www.cnblogs.com/kesimin/p/9559946.html
Copyright © 2020-2023  润新知