🔍 倒排索引
ElasticSearch 知识体系总览
ElasticSearch 是当今最流行的分布式搜索引擎,在日志分析(ELK)、全文搜索、推荐系统等场景中广泛应用。面试中,ES 的考察从「会写 DSL 查询」升级到「懂分片原理、写入流程、倒排索引」——理解底层原理才能应对深度追问。
一、知识体系总览
Section titled “一、知识体系总览”1.1 学习路径
Section titled “1.1 学习路径”第1阶段 倒排索引 → 分词器、词典第2阶段 分片路由 → 主分片、副本第3阶段 写入查询 → refresh、搜索流程第4阶段 聚合分析 → Bucket、Metric1.2 核心知识点思维导图
Section titled “1.2 核心知识点思维导图” ElasticSearch │ ┌───────────┬─────────────┴─────────────┐ ▼ ▼ ▼ ▼ 倒排索引 分片路由 写入查询 聚合 │ │ │ │• FST压缩 • 主分片 • refresh • Bucket• 分词器 • 副本 • flush • Metric• 词典 • 路由 • translog • Pipeline• PostingList • 集群状态 • BM25 • 深度分页1.3 面试重点总结
Section titled “1.3 面试重点总结”| 专题 | 考察频率 | 难度 | 核心能力 |
|---|---|---|---|
| 倒排索引 | ★★★★★ | 高 | 分词原理 |
| 分片路由 | ★★★★☆ | 中 | 路由算法 |
| 写入查询 | ★★★★☆ | 高 | 写入流程 |
| 聚合 | ★★★☆☆ | 中 | 聚合优化 |
二、四大核心专题
Section titled “二、四大核心专题”🗂️ 分片与路由
⚡ 写入/查询原理
📊 聚合分析
三、面试难度分布
Section titled “三、面试难度分布”| 知识点 | 初级面试 | 中级面试 | 高级面试 |
|---|---|---|---|
| 全文搜索基本概念 | ✅ 必问 | ✅ 必问 | ✅ 必问 |
| 倒排索引原理 | 偶尔 | ✅ 常问 | ✅ 必问 |
| 分词器 | ✅ 常问 | ✅ 常问 | ✅ 必问 |
| 分片概念 | 偶尔 | ✅ 常问 | ✅ 必问 |
| 路由算法 | ❌ 少问 | ✅ 常问 | ✅ 必问 |
| 写入流程/refresh | ❌ 少问 | ✅ 常问 | ✅ 必问 |
| 近实时搜索延迟 | ❌ 少问 | 偶尔 | ✅ 常问 |
| BM25 评分 | ❌ 少问 | 偶尔 | ✅ 常问 |
| 聚合性能优化 | ❌ 少问 | 偶尔 | ✅ 常问 |
ES 整体架构一览
Section titled “ES 整体架构一览”┌─────────────────────────────────────────────────────┐│ ES 集群 ││ ││ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ ││ │ Node 1 │ │ Node 2 │ │ Node 3 │ ││ │ (Master) │ │ │ │ │ ││ │ │ │ │ │ │ ││ │ 主分片 P0 │ │ 主分片 P1 │ │ 主分片 P2 │ ││ │ 副本分片 R1 │ │ 副本分片 R2 │ │ 副本分片R0 │ ││ └──────────────┘ └──────────────┘ └────────────┘ ││ ││ 共享的集群状态(ClusterState)由 Master 节点维护 │└─────────────────────────────────────────────────────┘ES vs MySQL:如何选型?
Section titled “ES vs MySQL:如何选型?”| 场景 | ES | MySQL |
|---|---|---|
| 全文搜索 | ✅ 最佳 | ❌ 性能差(LIKE %keyword%) |
| 结构化查询(精确匹配) | 可以 | ✅ 最佳 |
| 聚合统计 | ✅ 强大 | ✅ 适合 |
| 实时写入 | 近实时(1s延迟) | ✅ 实时 |
| 事务支持 | ❌ 无 | ✅ 完整 ACID |
| 复杂 JOIN | ❌ 不支持 | ✅ 支持 |
| 水平扩展 | ✅ 天然支持 | 困难 |