搜索系列 · 第 08 篇——面试收官:高频题与全景总结

把整个系列沉淀成一张知识地图

目 录

一、导读

二、高频面试题(基础类)

三、高频面试题(架构类)

四、高频面试题(场景类)

五、答题框架示范

[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 篇全部完成。

相关推荐
聪明的笨猪猪12 小时前
企业知识库AI架构选型:落地导向的架构决策与组件清单
经验分享·面试·架构·embedding·数据库架构
YIN_尹14 小时前
【git原理与使用】git基本操作及底层原理(二)
大数据·git·elasticsearch
Elasticsearch18 小时前
从结账告警到故障跨度:使用 Elastic 人工智能 agent 和 Elastic 应用性能监控浮出面板开展调查
elasticsearch
Elasticsearch18 小时前
认识全新的 Elastic 数据流:面向遥测数据的托管数据管道
elasticsearch
Elasticsearch20 小时前
使用 SpiceDB 为 Elasticsearch 检索增强生成实现细粒度授权
elasticsearch
新*21 小时前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
stormzhangV1 天前
涨薪 50% 怎么做到的?
人工智能·面试·aigc
聪明的笨猪猪1 天前
Java 工程案例:AI 生成 @Async 异步线程池踩坑
java·经验分享·面试·ai编程
新*1 天前
Elasticsearch 7.17 的 SQL 到底能查到什么?一次踩坑记录
后端·sql·elasticsearch·查询