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 为什么快?" 倒排索引、分布式、分片
相关推荐
Elastic 中国社区官方博客1 小时前
两个依赖和一个配置块:通过 Prometheus 远程写入将 Spring Boot 指标发送到 Elasticsearch
大数据·数据库·spring boot·elasticsearch·搜索引擎·全文检索·prometheus
nvd112 小时前
Flink 极简入门与零常驻批处理架构实战:从双模式辨析到 GitOps 通用模具治理
大数据·架构·flink
大大大大晴天️2 小时前
每天认识一个组件:向量化计算加速Apache Auron
大数据
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-09-27
人工智能·深度学习·神经网络·搜索引擎·百度
IT研究室2 小时前
最新大数据毕业设计选题推荐-基于大数据的线上网站书籍数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
计算机源码社2 小时前
【27届大数据毕设】基于Spark的AI艺术创作者价值评估与市场趋势预测研究 基于Python与Spark的AI生成艺术受众画像及异常热度识别可视化平台
大数据·人工智能·hadoop·python·spark·毕业设计·课程设计
SelectDB技术团队2 小时前
ELK 太占磁盘、ES 总报写入拒绝:从归因到可执行的优化清单
大数据·clickhouse·elk·elasticsearch·全文检索·复杂查询·实时更新
宸津-代码粉碎机9 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
Y3815326629 小时前
SERP API 计费口径:credits_charged、执行失败扣费与退款边界
python·搜索引擎