把整个系列沉淀成一张知识地图
目 录
[5.1 框架一:为什么 ES 检索快](#5.1 框架一:为什么 ES 检索快)
[5.2 框架二:ES vs 关系库怎么选](#5.2 框架二:ES vs 关系库怎么选)
一、导读
作为搜索系列收官篇,本讲把前七讲沉淀为一张「面试知识地图」:按基础、架构、场景三类整理高频面试题与答题要点,提供两套可套用的答题框架,最后给出系列全景总结。
二、高频面试题(基础类)
|-------------------|-----------------------------------------------------|
| 问题 | 答题要点 |
| 什么是 Elasticsearch | 基于 Lucene 的分布式 RESTful 搜索引擎,以 JSON 文档组织数据,倒排索引毫秒级检索 |
| 倒排索引是什么 | 以词项为核心记录出现在哪些文档,与正排相反,查词直接定位文档 |
| 为什么是近实时 | 写入先进内存缓冲 + translog,默认约 1 秒 refresh 生成可搜索段 |
| text 与 keyword 区别 | text 分词建倒排用于全文检索,keyword 不分词精确匹配、过滤、聚合 |
| 索引 / 文档 / 分片 / 副本 | 索引=文档集合,文档=JSON 单元,分片=水平扩展物理单元,副本=冗余与读扩展 |
| BM25 如何打分 | 在词频与文档长度间平衡,IDF 抑制高频词、长度归一化惩罚稀释,默认 k1=1.2/b=0.75 |
三、高频面试题(架构类)
|------------|---------------------------------------------------------------------------|
| 问题 | 答题要点 |
| 节点有哪些角色 | master / data / coordinating / ingest 等,node.roles 指定 |
| 集群如何形成 | cluster.name + discovery.seed_hosts + cluster.initial_master_nodes 互相发现选主 |
| 分片如何路由 | shard = hash(routing) % number_of_primary_shards |
| 近实时引擎怎么工作 | buffer + translog,refresh 生成段、flush 落盘,后台 Tiered 段合并 |
| 如何水平扩展 | 加节点自动重新平衡分片,主分片+副本共同承载 |
| 写入一致性怎么保证 | 主分片写后同步副本,wait_for_active_shards 控制确认 |
| 为什么主分片不可修改 | 路由依赖分片数取模,改后重哈希需重建(reindex) |
四、高频面试题(场景类)
|---------------------|-----------------------------------------------------|
| 问题 | 答题要点 |
| 为什么用 ES 不用 MySQL 搜索 | 倒排 + 分布式并行,亿级毫秒;LIKE/FULLTEXT 有限,大数据量秒级超时 |
| 查询变慢怎么排查 | _cat/shards 看分片、线程池 rejected、Profile API 定位热点子句、慢日志 |
| 深分页慢怎么办 | 改用 search_after 游标翻页,避免 from 过大 |
| 映射爆炸怎么防 | 收敛动态映射、限制 total_fields.limit、显式定义 Mapping |
| 数据量增长怎么办 | ILM 冷热分离 + 合理分片 + 滚动索引(rollover) |
| 与关系库如何分工 | 关系库做事务源,ES 做全文检索、日志、实时聚合,互补融合 |
五、答题框架示范
5.1 框架一:为什么 ES 检索快
分四层递进回答:存储(倒排索引以词项映射文档)→ 近实时(buffer + 段,约 1 秒可见)→ 分布式(分片并行 + 协调节点归并)→ 落地(亿级 LIKE 秒级 vs ES 毫秒级)。体现「以词项为本 + 分布式并行」的检索设计哲学。
5.2 框架二:ES vs 关系库怎么选
先点明边界:全文检索、日志、实时聚合适合 ES;强事务与复杂 JOIN 适合关系库。再给取舍:查询是全文与聚合 → ES;需要 ACID 事务 → 关系库。最后强调融合:关系库作数据源,ES 作搜索与分析底座,双写互补而非替代。
六、搜索系列全景总结
从认知入门到面试收官,本系列形成完整闭环,可凝练成一条知识链:
- 认知:倒排索引、近实时、分布式定位。
- 架构:Lucene 段引擎、节点角色、分片路由三层设计。
- 原理:倒排索引、分词映射、BM25、段管理。
- 部署:内网落地 Elasticsearch 集群,含一键脚本。
- 选型:与 Solr / OpenSearch / 关系库全文横评。
- 避坑:映射、分片、写入、查询陷阱。
- 调优:写入、生命周期、查询、监控体系。
- 面试:高频题与答题框架。
至此,搜索系列 8 篇全部完成。