Elasticsearch基本操作-聚合(二)

2023-05-08 10:48:30 浏览数 (1)

管道聚合

管道聚合是一种将多个聚合操作串联起来的方式。可以在一个聚合操作中使用另一个聚合操作的结果,来进行更复杂的计算。以下是一个按照桶进行分组,并计算每个桶的平均值的管道聚合示例:

代码语言:javascript复制
{
  "size": 0,
  "aggs": {
    "avg_price": {
      "avg": {
        "field": "price"
      }
    },
    "max_price": {
      "max": {
        "field": "price"
      }
    },
    "min_price": {
      "min": {
        "field": "price"
      }
    },
    "sum_price": {
      "sum": {
        "field": "price"
      }
    },
    "count_color": {
      "cardinality": {
        "field": "color.keyword"
      }
    },
    "group_by_color": {
      "terms": {
        "field": "color.keyword"
      },
      "aggs": {
        "avg_price": {
          "avg": {
            "field": "price"
          }
        },
        "max_price": {
          "max": {
            "field": "price"
          }
        },
        "min_price": {
          "min": {
            "field": "price"
          }
        },
        "sum_price": {
          "sum": {
            "field": "price"
          }
        }
      }
    }
  }
}

这个聚合查询可以同时计算文档中 price 字段的平均值、最大值、最小值、总和,以及 color 字段中不同值的个数。同时,对 color 字段进行聚合,可以得到每种颜色下的 price 字段的平均值、最大值、最小值、总和。

0 人点赞