图片
核心总结

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”获取下载地址。

往期推荐:
【AI加油站】AI面试专题一:BIO,NIO,AIO,Netty面试题(附下载)
【AI加油站】AI面试专题二:Git常用命令面试题(附下载)
【AI加油站】AI面试专题三:Java常用面试题(附下载)
【AI加油站】AI面试专题四:Linux系统的面试题集(附下载)
【AI加油站】AI面试专题五:Memcached面试题集(附下载)
【AI加油站】AI面试专题六:MyBatis框架的面试题(附下载)
【AI加油站】AI面试专题七:MySQL相关的面试题资料(附下载)
【AI加油站】AI面试专题八:Netty面试题资料(附下载)
【AI加油站】AI面试专题九:Nginx的面试题资料(附下载)
【AI加油站】AI面试专题十:RabbitMQ的面试题资料(附下载)
【AI加油站】AI面试专题十一:Redis的面试题资料(附PDF下载)
【AI加油站】AI面试专题十二:Spring的面试题资料(附PDF下载)
【AI加油站】AI面试专题十三:Apache Tomcat的面试题资料(附PDF下载)
【AI加油站】AI面试专题十四:Zookeeper的面试题资料(附PDF下载)
【AI加油站】AI面试专题十五:《阿里巴巴Java开发手册》终极版的面试题资料(附PDF下载)
【AI加油站】AI面试专题十六:大数据技术面试题资料(附PDF下载)
【AI加油站】AI面试专题十七:Java并发多线程面试题资料(附PDF下载)