Elasticsearch 核心数据模型:10大核心概念
- 一、前言
- 二、Elasticsearch 数据模型 10 大核心概念
- 第一部分:逻辑数据模型(最基础,对应数据库)
- 1. Index(索引)
- 2. Document(文档)
- 3. Field(字段)
- 4. Mapping(映射)
- 第二部分:搜索核心模型
- 5. 倒排索引(Inverted Index)
- 6. 分词器(Analyzer)
- 第三部分:分布式存储模型(集群核心)
- 7. Shard(分片)
- 8. Replica(副本)
- 9. Node(节点)
- 10. Cluster(集群)
- 三、ES 数据模型与 MySQL 对比(最经典)
- 四、ES 数据模型整体结构图
- 五、核心概念一句话总结(超好记)
- 六、最终总结(最核心)
🌺The Begin🌺点点关注,收藏不迷路🌺 |
一、前言
想要真正学会 Elasticsearch,必须先搞懂它的核心数据模型。
这是所有操作、查询、集群、优化的基础,也是面试必问。
本文把 ES 数据模型中最核心、最常用、必须掌握的概念,用通俗语言 + 对比 + 结构图一次性讲清楚,新手也能秒懂。
二、Elasticsearch 数据模型 10 大核心概念
我把它们分成逻辑层级、存储层级、分布式层级三大部分,非常好记。
第一部分:逻辑数据模型(最基础,对应数据库)
1. Index(索引)
- 相当于 MySQL 的 表(Table)
- 一类相似数据的集合(用户、商品、订单)
- 例如:
user_index、product_index
2. Document(文档)
- 相当于 MySQL 的 一行数据(Row)
- ES 中最小的数据单元
- 格式是JSON
- 每个文档有唯一 ID:
_id
3. Field(字段)
- 相当于 MySQL 的 列(Column)
- 文档里的每个属性:name、age、phone
- 每个字段有数据类型:text、keyword、integer…
4. Mapping(映射)
- 相当于 MySQL 的 表结构(Schema)
- 定义索引里有哪些字段、是什么类型
- 决定:是否分词、是否索引、是否存储
第二部分:搜索核心模型
5. 倒排索引(Inverted Index)
- ES快的核心原因
- 关键词 → 文档ID
- 用于实现全文检索
6. 分词器(Analyzer)
- 把文本切成一个个关键词(Term)
- 例如:“Elasticsearch教程” → 切分成 [Elasticsearch, 教程]
第三部分:分布式存储模型(集群核心)
7. Shard(分片)
- 索引的数据切片
- 一个索引分成多个分片,存在不同节点
- 分为:主分片(Primary)、副本分片(Replica)
8. Replica(副本)
- 分片的备份
- 作用:高可用 + 提高查询吞吐量
- 主分片挂了,副本自动顶上去
9. Node(节点)
- 一个 ES 实例 = 一个节点
- 存储分片、执行搜索
- 角色:主节点、数据节点、协调节点
10. Cluster(集群)
- 多个节点组成,对外提供统一服务
- 实现:高可用、海量存储、负载均衡
三、ES 数据模型与 MySQL 对比(最经典)
| Elasticsearch | MySQL |
|---|---|
| Index(索引) | Table(表) |
| Document(文档) | Row(一行数据) |
| Field(字段) | Column(列) |
| Mapping(映射) | Schema(表结构) |
| 倒排索引 | B+ 树索引 |
四、ES 数据模型整体结构图
五、核心概念一句话总结(超好记)
- Index:数据的集合,相当于表
- Document:一条JSON数据,相当于行
- Field:文档里的一个属性
- Mapping:字段结构定义
- 倒排索引:搜索快的秘密
- Shard:数据切片,分布式存储
- Replica:备份,保证高可用
- Node:一个ES服务实例
- Cluster:多个节点组成集群
六、最终总结(最核心)
Elasticsearch 数据模型的核心就是:
集群管理节点,节点存储分片,分片存储文档,文档由字段组成,
Mapping 定义结构,倒排索引实现高速搜索。
🌺The End🌺点点关注,收藏不迷路🌺 |