面试知识库

知识脉络#

ElasticSearch
├── 基础架构
│   ├── [ES架构与核心概念](/topics/elasticsearch/ES架构与核心概念)(Index/Shard/Document/Node角色)
│   ├── [分片与副本机制](/topics/elasticsearch/分片与副本机制)(路由/规划/高可用)
│   └── [ES集群管理与选主](/topics/elasticsearch/ES集群管理与选主)(选主协议/健康状态/扩缩容)
├── 索引与分词
│   ├── [倒排索引原理](/topics/elasticsearch/倒排索引原理)(FST/Posting List/压缩)⭐极高频
│   └── [分词器与Analyzer](/topics/elasticsearch/分词器与Analyzer)(IK/自定义/同义词)
├── 查询与分析
│   ├── [ES查询DSL与评分机制](/topics/elasticsearch/ES查询DSL与评分机制)(bool/BM25/function_score)
│   └── [ES聚合查询](/topics/elasticsearch/ES聚合查询)(Bucket/Metric/Pipeline)
├── 工程实践
│   ├── [ES与MySQL数据同步](/topics/elasticsearch/ES与MySQL数据同步)(Canal/Kafka/全量重建)⭐极高频
│   └── [ES性能调优](/topics/elasticsearch/ES性能调优)(写入/查询/集群/深分页)
plaintext

知识点清单#

#题目频率难度状态
1ES架构与核心概念高基础✅
2倒排索引原理极高进阶✅
3分词器与Analyzer中进阶✅
4ES查询DSL与评分机制高进阶✅
5分片与副本机制高进阶✅
6ES集群管理与选主中困难✅
7ES与MySQL数据同步极高困难✅
8ES性能调优高困难✅
9ES聚合查询中进阶✅

口诀速记#

  • 架构:Index 是表,Shard 是分区,Document 是行
  • 写入:写 Primary → 同步 Replica → refresh 可搜索
  • 查询:Query-then-Fetch:先各分片出候选,再汇总取文档
  • 同步:Canal 听 binlog → Kafka → Consumer 写 ES
  • 调优:写入三招(批量/延刷/关副本),查询三招(filter/routing/search_after)

跨域关联#

  • 倒排索引 → B+树索引原理(MySQL):正排 vs 倒排的互补
  • 数据同步 → 缓存与数据库一致性(Redis):都是异步同步保最终一致
  • 分片机制 → 分库分表方案(MySQL):hash 路由的相同思想
  • 集群选主 → Raft协议(分布式系统):ES 7.0 起的集群协调借鉴 Raft 思想(非标准 Raft)
  • 性能调优 → GC调优实战(JVM):ES 堆别超压缩指针阈值(官方:26GB 多数安全,以启动日志为准;7.11 起默认自动设堆)