Elasticsearch 面试题
目录

Elasticsearch 中 Bucket 聚合有哪些?

· 约 9 分钟读完 · 第 71 / 142 章

推荐答案

在 Elasticsearch 中,Bucket 聚合是一种将文档分组到不同“桶”中的聚合方式。常见的 Bucket 聚合包括:

  1. Terms Aggregation:根据字段的唯一值进行分组。
  2. Range Aggregation:根据数值范围进行分组。
  3. Date Range Aggregation:根据日期范围进行分组。
  4. Histogram Aggregation:根据数值间隔进行分组。
  5. Date Histogram Aggregation:根据日期间隔进行分组。
  6. Geo Distance Aggregation:根据地理位置距离进行分组。
  7. IP Range Aggregation:根据 IP 地址范围进行分组。
  8. Nested Aggregation:用于嵌套文档的聚合。
  9. Reverse Nested Aggregation:用于从嵌套文档返回到父文档的聚合。
  10. Children Aggregation:用于父子文档关系的聚合。
  11. Significant Terms Aggregation:用于识别显著项的聚合。
  12. Filters Aggregation:根据多个过滤器进行分组。
  13. Sampler Aggregation:用于对文档进行采样后再聚合。

本题详细解读

Terms Aggregation

Terms Aggregation 是最常用的 Bucket 聚合之一,它根据字段的唯一值将文档分组。例如,可以根据“category”字段的值将商品文档分组。

Range Aggregation

Range Aggregation 允许你根据数值范围将文档分组。例如,可以根据“price”字段的值将商品文档分组到不同的价格区间。

Date Range Aggregation

Date Range Aggregation 类似于 Range Aggregation,但它是根据日期范围进行分组。例如,可以根据“date”字段的值将日志文档分组到不同的日期区间。

Histogram Aggregation

Histogram Aggregation 根据数值间隔将文档分组。例如,可以根据“age”字段的值将用户文档分组到不同的年龄区间。

Date Histogram Aggregation

Date Histogram Aggregation 根据日期间隔将文档分组。例如,可以根据“timestamp”字段的值将日志文档分组到不同的时间区间。

Geo Distance Aggregation

Geo Distance Aggregation 根据地理位置距离将文档分组。例如,可以根据用户的位置与某个中心点的距离将用户文档分组。

IP Range Aggregation

IP Range Aggregation 根据 IP 地址范围将文档分组。例如,可以根据“ip”字段的值将访问日志分组到不同的 IP 地址区间。

Nested Aggregation

Nested Aggregation 用于嵌套文档的聚合。例如,可以在嵌套的“comments”字段上进行聚合。

Reverse Nested Aggregation

Reverse Nested Aggregation 用于从嵌套文档返回到父文档的聚合。例如,可以在嵌套的“comments”字段上进行聚合后,再返回到父文档进行进一步聚合。

Children Aggregation

Children Aggregation 用于父子文档关系的聚合。例如,可以在“parent”和“child”文档之间进行聚合。

Significant Terms Aggregation

Significant Terms Aggregation 用于识别显著项的聚合。例如,可以识别出某个字段中显著出现的值。

Filters Aggregation

Filters Aggregation 根据多个过滤器将文档分组。例如,可以根据不同的过滤器将文档分组到不同的桶中。

Sampler Aggregation

Sampler Aggregation 用于对文档进行采样后再聚合。例如,可以先对文档进行采样,然后再对采样后的文档进行聚合。