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综合练习

核心概念

Index、Document、Shard、Replica、Node。

35 分钟

核心概念

Elasticsearch 用 近关系 的术语组织数据:Index 像「库表」,Document 像「行」,但底层是 JSON 文档 + 倒排索引,无 JOIN。

学习目标

  • 掌握 Index、Document、Mapping、Shard、Replica、Node
  • 理解 Cluster 健康状态与分片路由直觉
  • 对照 MySQL 表模型,避免把 ES 当 RDBMS 用

核心内容

术语对照

ES直觉类比MySQL(本站)
Cluster整个 ES 部署实例 + 库集合
Node单台 ES 进程mysqld 进程
Index逻辑命名空间database.table
Document一条 JSON一行
Mapping字段类型/schemaDDL
Shard水平分片分库分表片
Replica副本分片读副本

Index 与 Document

# 索引一条「课程」文档(实验 index 名 tracks)
curl -X PUT "localhost:9200/tracks/_doc/spring-boot-essentials" -H "Content-Type: application/json" -d '
{
  "slug": "spring-boot-essentials",
  "title": "Spring Boot 入门",
  "category": "backend",
  "summary": "IoC、Web、JPA 与 MySQL 集成"
}'

_id 可指定为 slug,便于与 MySQL cf_track.slug 对齐;权威字段仍以 MySQL 为准。

Shard 与 Replica

Index "tracks"
  ├── Primary Shard 0  →  Replica 0
  └── Primary Shard 1  →  Replica 1
  • Primary Shard:写入路由目标,创建 index 时数量固定(默认 1,生产需规划)
  • Replica:副本,提升读吞吐与容错;主分片挂掉时提升副本为主

单节点 Docker 实验通常 number_of_replicas: 0;集群内至少 1 副本才有 HA 意义。

Cluster 健康

curl -s "localhost:9200/_cluster/health?pretty"
# green  : 所有主/副本可用
# yellow : 主分片 OK,副本未分配(单节点常见)
# red    : 部分主分片不可用,需排查

与 MySQL / Mongo 的关系

  • MySQL cf_track:事务、外键、REST /tracks 数据源(spring-boot-essentials)
  • MongoDB:嵌套文档、高写入日志(mongodb-essentials)
  • :从上述库 可搜索快照,见
ES
同步
es-sync

练习

  • 画出 Cluster → Node → Index → Shard 层级图
  • 解释单节点为何 _cluster/health 常为 yellow
  • 对照 schema.sql 中 cf_track 列,列出哪些适合进 ES 文档

小结

Document 存 JSON,Shard 做水平切分,Replica 保可用。 下一课 Docker 启动单节点 ES。

加载本节练习…
← 上一课搜索引擎是什么下一课 →Docker 单节点