ES 基础总结

Elasticsearch 基础总结

一、Elasticsearch 是什么

开源的分布式、RESTful 搜索和分析引擎,Java 开发,基于 Lucene。7.x 起内置 JDK,无需额外依赖。支持文本、数值、地理空间、结构化与非结构化数据。

一句话:ES 是一个专门用来"搜索"和"分析"海量数据的引擎,不是用来替代 MySQL 的。


二、Lucene 是什么

Lucene 是一个用 Java 编写的全文检索库,是 ES 的底层核心。它提供倒排索引、分词、评分、高亮等能力。由于其没有分布式和高可用,直接基于它开发非常复杂。ES 在其上封装了 REST API、分布式、副本等

一句话:

"ES 底层是 Lucene,Lucene 提供了倒排索引和全文检索能力。ES 在 Lucene 之上加了分布式、副本、REST API,让它变成一个可以直接用的搜索系统。"


三、ES 能帮你做什么

场景 说明
全文检索 商品搜索、文章搜索、日志搜索
日志分析 ELK(Elasticsearch + Logstash + Kibana)
聚合分析 统计、分组、报表、仪表盘
模糊匹配 拼写纠错、同义词、拼音搜索
地理位置搜索 附近的人、附近的店
向量搜索 RAG、推荐系统(新趋势)

不适合:

  • 强事务场景(如银行转账)
  • 复杂关联查询(多表 JOIN)
  • 频繁更新的数据

四、为什么 ES 可以而 MySQL 不行?

核心原因:数据结构不同。

1. MySQL 的索引是 B+ 树
  • B+ 树适合精确匹配 和范围查询。
  • 对于 LIKE '%关键字%',无法走索引,只能全表扫描。
  • 数据量大时,全表扫描极慢。
2. ES 的索引是倒排索引
  • 倒排索引是 Term → 文档 ID 列表 的映射。
  • 写入时对文本分词,建立 Term 和文档的关系。
  • 查询时直接根据 Term 找到文档,不需要扫描全表。
3. 举例

查询"手机":

  • MySQL:WHERE title LIKE '%手机%' → 全表扫描,慢。
  • ES:倒排索引直接找到包含"手机"的文档 ID → 快。
4. 一句话

"MySQL 用 B+ 树,适合精确匹配和范围查询,但 LIKE '%xxx%' 无法走索引,只能全表扫描。ES 用倒排索引,写入时分词建立 Term 到文档的映射,查询时直接根据 Term 定位,所以全文检索快很多。这就是为什么搜海量文本用 ES,而不用 MySQL。"


五、ES 核心概念

概念 说明 类比 MySQL
Cluster(集群) 一个或多个节点组成,对外提供搜索服务 一个数据库实例
Node(节点) 一个 ES 进程,属于某个集群 一个数据库服务器
Index(索引) 文档的集合,类似数据库的表 表
Document(文档) 一条 JSON 记录 行
Field(字段) 文档中的一个属性 列
Mapping(映射) 定义字段类型和属性 表结构
Shard(分片) 索引的水平拆分,每个分片是一个 Lucene 实例 分库分表
Replica(副本) 分片的备份,提供高可用和读扩展 主从复制
倒排索引 Term → 文档 ID 的映射 无直接对应

一句话:

"ES 里索引类似 MySQL 的表,文档类似行,字段类似列,Mapping 类似表结构。索引可以拆成多个分片,每个分片是一个 Lucene 实例,副本提供高可用。ES 用倒排索引做全文检索,和 MySQL 的 B+ 树互补。"


六、常见考察点

面试不会直接问"ES 是什么",而是通过以下方式考察:

问题 考察点
"你项目为什么用 ES?" ES 是什么、能做什么、和 MySQL 区别
"ES 和 MySQL 有什么区别?" B+ 树 vs 倒排索引、全文检索 vs 事务
"ES 底层是什么?" Lucene、倒排索引
"ES 里的索引、文档、分片是什么?" 基础概念
"数据怎么从 MySQL 同步到 ES?" 数据同步方案
"ES 为什么快?" 倒排索引、分布式、分片
相关推荐
wafrdggh6 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
大大大大晴天8 小时前
OLTP、OLAP、数据湖、数据集市、湖仓一体到底是什么关系?
大数据
正在走向自律11 小时前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a
freejackman12 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
goujunwe13 小时前
GEO 内容的“可摘录性”打磨技巧:段落、表格、小标题怎么写,方便大模型提取独立答案块
大数据·人工智能
小田学Python13 小时前
DeepSeek Harness 完整上手指南:安装部署 + 必装插件 + 用一周就回不去的功能
大数据·大模型·agent·ai工具·deepseek
成都蜀味缘餐饮技术培训学校17 小时前
手撕烤兔技术培训实战指南,秘制腌料配方比例与调制手法
大数据·经验分享·笔记·其他·微信公众平台
roman_日积跬步-终至千里17 小时前
AI 能让一个人成为团队吗?从数据中台到 OPC,重新理解软件工程能力
大数据·人工智能·软件工程
演艺大赏19 小时前
NiFi 数据流实战:FTP→HDFS 与 CSV→Parquet,附坏数据、漏文件与双写
大数据
数字新视界20 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统