• ES学习(四)--嵌套聚合、下钻分析、聚合分析


    一、 先将文本field的fielddata属性设置为true
      PUT /ecommerce/_mapping
      {
        "properties":{
          "tags":{
            "type":"text",
            "fielddata":true
          }
        }
      }

    二、统计每个tag下的商品数量

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

    四、计算每个tag下的平均价格
        GET /ecommerce/_search
        {
          "aggs": {
            "group_by_tags": {
              "terms": {
                "field": "tags",
                "order": {
                  "avg_price": "desc"
                }
              },
              "aggs": {
                "avg_price": {
                  "avg": {
                    "field": "price"
                  }
                }
              }
            }
          }
        }
    五、 按照指定价格区间进行分组,然后在每组内按照tag进行分组,最后再计算每组的平均价格
      GET /ecommerce/_search
      {
        "size": 0,
        "aggs": {
          "group_by_range": {
            "range": {
              "field": "price",
              "ranges": [
                {
                  "from": 0,
                  "to": 30
                },
                {
                  "from": 30,
                  "to":60
                }
              ]
            },
            "aggs": {
              "group_by_tags": {
                "terms": {
                  "field": "tags"
                },
                "aggs": {
                  "avg_price": {
                    "avg": {
                      "field": "price"
                    }
                  }
                }
              }
            }
          }
        }
      }

  • 相关阅读:
    springboot笔记
    SpringBoot
    SpringBoot整合JPA
    Docker
    SpringMVC学习04:异常处理和拦截器
    SpringMVC学习03:文件上传
    SpringMVC学习02:响应数据和结果视图
    Mybatis学习04
    【java基础】初步理解面向对象、类、对象
    【Java基础】方法的重载
  • 原文地址:https://www.cnblogs.com/DjanFey/p/12114578.html
Copyright © 2020-2023  润新知