# Bucket 聚合

URL: https://caijiao.org/elasticsearch/03.advanced/09.agg-bucket
Source: docs/elasticsearch/03.advanced/09.agg-bucket.md
Description: 本章介绍 Elasticsearch 中常用的 Bucket 聚合类型及使用方法，帮助实现数据的分组、分类和分桶统计。

Bucket 聚合用于将文档分组到不同的桶（Bucket）中，根据字段值、范围、日期等条件进行分类统计，是数据分析的核心工具。

## 1. 常见 Bucket 聚合类型

- **terms**：按字段值分组，返回每个值对应的桶  
- **range**：按数值范围分组  
- **date_histogram**：按日期区间分组，支持按天、周、月等粒度  
- **filters**：按多个查询条件分组  
- **histogram**：按数值区间分组（固定间隔）

## 2. 示例：按字段分组统计

```json
GET /my-index/_search
{
  "size": 0,
  "aggs": {
    "group_by_category": {
      "terms": {
        "field": "category.keyword"
      }
    }
  }
}
````

## 3. 示例：按日期分组

```json
GET /my-index/_search
{
  "size": 0,
  "aggs": {
    "sales_over_time": {
      "date_histogram": {
        "field": "sale_date",
        "calendar_interval": "month"
      }
    }
  }
}
```

## 4. 注意事项

* 聚合字段通常需使用 `.keyword` 或非分词字段
* 使用合理的桶大小和间隔，避免返回过多桶，影响性能
* 可以嵌套使用 Bucket 聚合，实现多级分组

---

Bucket 聚合使你能够灵活地对数据进行分组和分类统计，助力多维度数据分析和报表制作。
