当前位置: 首页 > news >正文

Elasticsearch 系列专题 - 第四篇:聚合分析

聚合(Aggregation)是 Elasticsearch 的强大功能之一,允许你对数据进行分组、统计和分析。本篇将从基础到高级逐步讲解聚合的使用,并结合实际案例展示其应用。


1. 聚合基础

1.1 什么是聚合(Aggregation)?

聚合是对文档集合的统计分析,类似于 SQL 中的 GROUP BY 和聚合函数(如 SUMAVG)。Elasticsearch 提供两类聚合:

  • Metric 聚合:计算数值统计(如平均值、总和)。
  • Bucket 聚合:将文档分组(如按字段值、范围)。
1.2 Metric 聚合(求和、平均值等)

计算单个字段的统计信息。示例:

GET /my_index/_search
{
  "aggs": {
    "by_views": {
      "sum": { "field": "views" }
    }
  }
}

返回:

{
   
  "aggregations": {
   
    "by_views": {
   
      "value": 1500
    }
  }
}

常用 Metric 聚合:

  • avg:平均值。
  • min/max:最小/最大值。
  • stats:综合统计(包括 min、max、avg 等)。
1.3 Bucket 聚合(分组、范围等)

将文档按条件分组。示例:

GET /my_index/_search
{
  "aggs": {
    "by_author": {
      "terms": { "field": "author.keyword" }
    }
  }
}

返回:

{
   
  "aggregations": {
   
    "by_author": {
   
      "buckets": [
        {
    "key": "Grok", "doc_count": 10 },
        {
    "key": "Alice", "doc_count": 5 }
      ]
    }
  }
}

常用 Bucket 聚合:

  • terms:按字段值分组。
  • range:按数值范围分组。
  • date_histogram:按时间间隔分组。

Mermaid 图示 - Bucket 聚合流程

相关文章:

  • LangGraph 使用指南
  • jwt.io学习
  • 如何在gitee/github上面搭建obsidian的图床
  • minio改成https+域名访问
  • 基于Python电影数据的实时分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
  • STM32单片机入门学习——第33节: [10-3] 软件I2C读写MPU6050
  • SSRF漏洞公开报告分析
  • 深度解析SOCKS5代理节点:原理、搭建与安全实践
  • vue自定义颜色选择器
  • 接口请求控制工具
  • Modules模块NamespaceManagement命名空间管理
  • AI应用企业研发方案
  • 旋转位置编码
  • OpenHarmony-5.0.0-Risc-V架构搭建DeepSeek-R1
  • SS Block
  • Android Coil 3默认P3色域图加载/显示不出来
  • STM32 模块化开发指南 · 第 5 篇 STM32 项目中断处理机制最佳实践:ISR、回调与事件通知
  • Windows 录音格式为什么是 M4A?M4A 怎样转为 MP3 格式
  • 面向对象的需求分析与UML构造块详解
  • 设计模式:里氏代换原则 - 继承设计的稳定之道
  • 在线做插画的网站/seo网络推广是什么意思
  • 淄博微信网站建设/国外网站排行
  • 广州网站开发定制方案/免费的黄冈网站有哪些
  • 巴州建设工程信息网/企业seo培训
  • 大型商家进驻网站开发/今日新闻10条简短
  • 微信网站怎么做/帮收款的接单平台