CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Elasticsearch 入门/课时/聚合入门
RawBlame
课时目录12 节

Elasticsearch 入门

  1. 01搜索引擎是什么
  2. 02核心概念
  3. 03Docker 单节点
  4. 04Mapping 与字段类型
  5. 05索引 CRUD
  6. 06查询 DSL
  7. 07聚合入门
  8. 08Spring Data Elasticsearch
  9. 09数据同步
  10. 10分片与扩容
  11. 11Kibana 可视化
  12. 12综合练习

聚合入门

terms、date_histogram、metrics。

35 分钟

聚合入门

Aggregation 在检索结果集上做统计分析:分桶(bucket)与指标(metric)。类似 SQL GROUP BY + COUNT/AVG,但面向搜索上下文,可与 query 同请求返回。

学习目标

  • 使用 terms、date_histogram、metric 聚合
  • 理解 bucket 与 metric 嵌套
  • 对照 MySQL GROUP BY 理解适用边界

核心内容

terms 分桶

curl -s -X POST "localhost:9200/tracks/_search" -H "Content-Type: application/json" -d '
{
  "size": 0,
  "aggs": {
    "by_category": {
      "terms": { "field": "category", "size": 10 }
    }
  }
}'

size: 0 只返回聚合,不返回 hit 文档——报表场景常用。

嵌套:分类 + 平均课时数

curl -s -X POST "localhost:9200/tracks/_search" -H "Content-Type: application/json" -d '
{
  "size": 0,
  "aggs": {
    "by_category": {
      "terms": { "field": "category" },
      "aggs": {
        "avg_lesson_count": { "avg": { "field": "lessonCount" } }
      }
    }
  }
}'

date_histogram 按 updatedAt 看「每月上新 track 数」。精确运营报表以 MySQL / postgresql-essentials 为准;搜索页 facet 用 ES terms agg(es-kibana 可视化)。同步完整性见 es-sync。

练习

  • terms 统计各 level 的 track 数量
  • 嵌套 agg:每 category 的 max/min lessonCount
  • 与 MySQL 对同一 cf_track 跑 GROUP BY,对比结果

小结

terms 分桶、metric 算数、date_histogram 看趋势;搜索页 facet 是 ES 强项。 下一课 Spring Data ES。

加载本节练习…
← 上一课查询 DSL
下一课 →Spring Data Elasticsearch