面试知识库

ElasticSearch 高频速查#

核心概念一句话#

题目一句话
ES架构基于 Lucene,Index→Shard→Document;Master 管元数据,Data 存数据
倒排索引词项→文档列表;FST 词典+Posting List;Delta+Roaring 压缩
分词器Char Filter→Tokenizer→Token Filter;中文用 IK(建索引 max_word,查询 smart)
查询DSLQuery 打分/Filter 缓存;bool(must/should/filter/must_not);BM25 评分
分片副本hash(routing)%shard_num 路由;Primary 不可变;Replica 高可用+读扩展
集群选主7.x 基于 Raft;3 专用 Master;Green/Yellow/Red 三色健康
数据同步Canal+Kafka+Consumer 写 ES;主键幂等;alias 切换零停机
性能调优写入(bulk/关refresh/关副本);查询(filter/routing/search_after);堆≤31GB
聚合查询Bucket 分桶+Metric 算数+Pipeline 再算;基于 doc_values 列式存储

记忆锚点速查#

主题口诀
写入流程写 Primary → 同步 Replica → refresh(1s) 可搜索
查询两阶段Query(各出候选) → Fetch(取文档)
调优写入批量 + 延刷 + 关副本
调优查询filter缓存 + routing定向 + search_after翻页
数据同步Canal听binlog → Kafka中转 → 主键幂等
分片规划30GB一片,主备分开,堆≤31GB
深分页search_after 逐页翻(from+size 10000+ 必爆)

对比速查#

ES vs MySQL
倒排索引 vs B+树
近实时(1s) vs 实时
无事务/JOIN vs ACID/关联查询
全文搜索+聚合 vs 精确查询+事务
Shard不可变 vs 分区可调