【AI加油站】AI面试专题二十:Elasticsearch的面试题资料(附PDF下载)
- 2025-07-17 08:00:00

Elasticsearch面试题 的核心内容整理:
上篇:ES基础与实践
1. ES集群架构与调优
集群规模:13节点,20+索引,每日1亿+数据(150GB/通道),10分片。
调优手段:
设计阶段:按日期滚动索引(rollover API)、冷热分离(SSD+shrink)、生命周期管理(curator)、合理分词器与Mapping。
写入调优:副本数置0、禁用refresh、bulk批量写入、自动生成ID。
查询调优:禁用wildcard/terms、优先keyword类型、路由优化。
2. 倒排索引
原理:词到文档的映射表(词典+倒排表),基于FST数据结构(空间压缩+快速查询)。
3. 大数据量调优
动态索引:模板+时间滚动(避免单索引过大)。
存储:冷热分离,冷数据定期force_merge/shrink。
部署:动态扩容节点(需前期合理规划主节点)。
4-6. 核心机制
Master选举:候选节点(master:true)通过节点ID排序,需满足
min_master_nodes
防脑裂。文档写入:协调节点→路由分片(基于文档ID哈希)→主分片+副本分片并行写入。
搜索过程:Query阶段(分片本地查询→全局排序)+ Fetch阶段(取回文档)。
7. Linux优化
关闭swap、堆内存≤32GB、文件句柄数(64k)、RAID10存储。
8. Lucene结构
索引(分词→倒排表)与搜索(读取索引→打分)流程。
下篇:进阶与运维
1. 更新/删除文档
不可变性:标记.del文件,段合并时清理旧版本。
2. 搜索优化
Query Then Fetch:分片本地查询→全局排序→取回文档。
DFS模式:预查询Term频率提升评分准确性(牺牲性能)。
3. 倒排索引查询
通过Lucene索引文件(词典+倒排表)定位词对应的文档。
4. 部署优化补充
硬件:SSD优先、多核CPU、单数据中心部署。
JVM:避免swap、合理分配heap(≤32GB)、单播发现(unicast)。
5. GC与内存
监控:segment内存、缓存(field/filter/bulk queue)、避免大结果集(scan&scroll)。
circuit breaker:防止内存溢出。
6. 大数据聚合
Cardinality度量:基于HLL算法近似去重,平衡精度与内存。
7. 并发一致性
写操作:版本号乐观锁、quorum一致性级别。
读操作:sync复制(默认)或指定主分片查询(_preference=primary)。
8. 监控工具
Marvel+Kibana:实时监控集群健康与性能。
9-10. 电商搜索架构
技术栈:Elasticsearch+word2vec(个性化搜索/相似商品推荐)。
局限:word2vec仅处理时序数据,需结合用户偏好优化。
11-12. 高级功能
字典树(Trie):空间换时间,前缀匹配优化(中文用哈希表存储子节点)。
拼写纠错:编辑距离+BK树(递归查找相似词)。
速记关键词
调优:冷热分离、滚动索引、bulk写入、force_merge。
选举:节点ID排序、min_master_nodes防脑裂。
搜索:Query+Fetch、DFS模式、倒排索引+FST。
运维:SSD、JVM堆≤32GB、监控Marvel、GC优化。



本书免费下载地址
关注微信公众号“人工智能产业链union”回复关键字“AI面试20”获取下载地址。

- 点赞 0
-
分享
微信扫一扫
-
加入群聊
扫码加入群聊