• 计算每个tag下的商品数量
GET /ecommerce/_search
{
  "aggs": {
    "group_by_tags": {
      "terms": {
        "field": "tags",
        "size": 10
      }
    }
  }
}
  • 对名称中包含yaogao的商品,计算每个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"
        },
        "aggs": {
          "avg_price": {
            "avg": {
              "field": "price"
            }
          }
        }
      }
    }
    }
  • 计算每个tag下的商品平均价格,并且按照平均价格降序排序

    GET /ecommerce/_search
    {
    "size": 0, 
    "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_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"
                }
              }
            }
          }
        }
      }
    }
    }
最后修改:2020 年 02 月 13 日
如果觉得我的文章对你有用,请随意赞赏