zoukankan      html  css  js  c++  java
  • 简单聚合查询

    首先将文本field的fielddata属性设置为true,否则会报错
    PUT /ecommerce/_mapping/product
    {
      "properties" : {
        "tags" : {
          "type" : "text",
          "fielddata" : true
        }
      }
    }

    1、计算每个tag下的商品数量
    GET /ecommerce/product/_search
    {
      "size" : 0,
      "aggs" : {
        "all_tags" : {
          "terms" : { "field" : "tags" }
        }
      }
    }

    2、对名称中包含yagao的商品,计算每个tag下的商品数量
    GET /ecommerce/product/_search
    {
      "size" : 0,
      "query" : {
        "match" : {"name" : "yagao"}
      },
      "aggs" : {
        "all_tags" : {
          "terms" : { "field" : "tags"}
        }
      }
    }

    3、先分组,再计算每组的平均值。计算每个tag下的商品的平均价格
    GET /ecommerce/product/_search
    {
      "size" : 0,
      "aggs" : {
        "group_by_tags" : {
          "terms" : { "field" : "tags" },
          "aggs" : {
            "avg_price" : {
              "avg" : { "field" : "price" }
            }
          }
        }
      }
    }

    4、计算每个tag下的商品的平均价格,并且按照平均价格降序排序
    GET /ecommerce/product/_search
    {
      "size" : 0,
      "aggs" : {
        "all_tags" : {
          "terms" : {"filed" : "tags","order" : {"avg_price" : "desc"}},
          "aggs" : {
            "avg_price" : {
              "avg" : {"field" : "price" }
            }
          }
        }
      }
    }

    5、按照指定的价格范围区间进行分组,然后在每组内再按照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" : 60
              }
            ]
          },
          "aggs" : {
            "group_by_tags" : {
              "terms" : {"field" : "tags"},
              "aggs" : {
                "avg_price" : {
                  "avg" : {
                    "field" : "price"
                  }
                }
              }
            }
          }
        }
      }
    }

  • 相关阅读:
    杭电1312--Red and Black(Dfs)
    杭电1102--Constructing Roads(简单并查集)
    杭电1969--Pie(二分法)
    最小生成树:HDU1863-畅通工程
    并查集:HDU1213-How Many Tables(并查集最简单的应用)
    并查集:HDU5326-Work(并查集比较简单灵活的运用)
    最小生成树:POJ1251-Jungle Roads(最小生成树的模板)
    图论:HDU2544-最短路(最全、最经典的最短路入门及小结)
    动态规划、记忆化搜索:HDU1978-How many ways
    记忆化搜索:POJ1088-滑雪(经典的记忆化搜索)
  • 原文地址:https://www.cnblogs.com/qinjf/p/8445655.html
Copyright © 2011-2022 走看看