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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM