ES(Elasticsearch)面试常见八股整理

ElasticSearch 面试题分类整理
本整理旨在整合牛客上ES相关面试八股题,帮助各位更好地准备秋/春招技术面试,感谢各位大佬在各大公司面试经验分享中贡献的宝贵面试题目

 一、ES基础概念与原理

 基础概念
- 什么是Elasticsearch?请介绍一下Elasticsearch
- Elasticsearch 的基本概念有哪些?
- Elasticsearch 中的集群、节点、索引、文档、类型是什么?
- 说一下text 和 keyword类型的区别
- DocValues的作用是什么?
- 什么是停顿词过滤?
- query 和 filter 的区别是什么?
- Elasticsearch有哪些数据类型?你在项目中用了哪些?
- Elasticsearch支持事务吗?

 核心原理
- 什么是倒排索引?
- 你了解倒排索引的实现原理吗?
- 在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
- 如何在保留不变性的前提下实现倒排索引的更新?
- lucence 内部结构是什么?
- 是否了解字典树?
- 讲一下elasticsearch和mysql 的区别
- Elasticsearch为什么适合搜索?
- elasticsearch的原理和结构是怎样的?
- ES为什么这么快?

 存储机制
- String类型在ES中是怎么存储的?
- Elasticsearch列式存储与行式存储的区别是什么?链式存储的优势有哪些?
- 你了解Elasticsearch的Segment吗?
- 说一下Elasticsearch的Refresh机制
- 你知道Elasticsearch的Flush操作吗?
- 什么是Merge操作?
- ES如何保证数据不丢失?
 二、ES架构与集群管理

 集群架构
- Elasticsearch的架构是怎样的?
- 说说你们公司 es 的集群架构,索引数据大小,分片有多少?
- 分片机制是如何实现分布式集群的?
- 分片和副本有什么区别?
- 你了解分段机制吗?
- ES是怎么样去运行的?跑了几个节点?

 Master选举与脑裂
- Elasticsearch 的分布式原理是什么?
- Elasticsearch是如何实现Master选举的?
- Elasticsearch 重要的节点(比如公共 20 个),其中的 10 个选了一个master,另外 10 个选了另一个 master,怎么办?
- Elasticsearch是如何避免脑裂现象的?
- Elasticsearch 集群脑裂问题如何解决?

 节点协调与负载
- 节点和分片是如何协调的?
- 客户端在和集群连接时,如何选择特定的节点执行请求的?
- 你遇到过数据倾斜问题吗?如何处理?
- 什么是长尾问题?

 三、数据写入与更新

 写入流程
- 详细描述一下 Elasticsearch 索引文档的过程
- es 写数据的过程是怎样的?
- 写数据的底层原理是什么?
- 文档索引步骤顺序是什么?
- 新增的文档怎么快速和旧文档一起被检索?

 更新删除
- 详细描述一下 Elasticsearch 更新和删除文档的过程
- ES更新一个文档,它的操作步骤是什么样子的?

 高并发写入
- 写压力大时怎么处理?
- 海量数据如何写入es?
- 在并发情况下,Elasticsearch 如何保证读写一致?
- ES在高并发下如何保证读写一致性?

 四、搜索与查询

 搜索流程
- 详细描述一下 Elasticsearch 搜索的过程
- Query阶段是如何工作的?
- Fetch阶段是如何工作的?

 分词与查询
- 分词器的分词流程是怎样的?
- ES你是用过什么样的接口去搜索的?比如搜索一个关键字,你是怎么去搜索的?
- title的类型是什么类型(设置ES索引的时候)?

 深度分页
- ES的深度分页与滚动搜索scroll是什么?

 五、性能优化与调优

 索引优化
- 建立索引阶段性能提升方法有哪些?
- 索引阶段性能提升方法有哪些?
- elasticsearch 索引数据多了怎么办,如何调优?
- 说一下你了解的调优手段

 聚合优化
- Elasticsearch 对于大数据量(上亿量级) 的聚合如何实现?

 系统调优
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
- 对于 GC 方面,在使用 Elasticsearch 时要注意什么?

 六、部署与运维

 部署相关
- elasticsearch如何部署?
- ES应用你是怎么部署的?
- 如何监控 Elasticsearch 集群状态?

 七、数据同步与一致性

 数据同步
- 数据库修改信息如何同步ElasticSearch?
- 项目中你的数据是怎么灌入ES的?
- 怎样进行数据同步?
- 如何考虑es和MySQL一致性?
- 如果用消息队列异步写入的话,消息丢失怎么办?

 八、应用场景与实战

 使用场景
- ElasticSearch的主要功能及应用场景是什么?
- 实习中的ElasticSearch为什么要用?为啥不直接查Mysql?

 特殊场景
- 针对文字,ES可以用倒排索引,你知道ES针对地图如何构建索引吗?

---
以上问题整理自牛客社区的面试经验分享,可结合ai逐问题解析以及实际项目经验进行深入理解。#秋招笔面试记录# #牛客AI配图神器#
全部评论
有遗漏的点欢迎补充
1 回复 分享
发布于 2025-08-24 15:43 江苏
给楼主点赞,更多牛客面经八股题库可见:https://m.nowcoder.com/mianshi/top
8 回复 分享
发布于 2025-08-25 10:25 北京
mark
1 回复 分享
发布于 2025-08-24 16:22 陕西
这个题:Elasticsearch链式存储与行式存储的区别是什么?链式存储的优势有哪些? 应该是列式存储吧
2 回复 分享
发布于 2025-10-04 16:40 江苏
mark
点赞 回复 分享
发布于 02-15 21:53 安徽
mark
点赞 回复 分享
发布于 2025-11-30 01:32 上海
mark
点赞 回复 分享
发布于 2025-11-23 14:28 北京
mark
点赞 回复 分享
发布于 2025-10-22 17:04 上海
mark
点赞 回复 分享
发布于 2025-10-19 15:41 广西
mark
点赞 回复 分享
发布于 2025-10-03 00:46 浙江
mark
点赞 回复 分享
发布于 2025-09-28 18:43 山东
mark
点赞 回复 分享
发布于 2025-09-26 09:27 福建
mark
点赞 回复 分享
发布于 2025-09-18 10:07 天津
mark
点赞 回复 分享
发布于 2025-09-18 08:52 陕西
感谢po主,es这方面的八股太少了
点赞 回复 分享
发布于 2025-08-26 21:26 北京
在公司这东西我们都专门学来用的,确实很好
点赞 回复 分享
发布于 2025-08-26 20:52 广东
mark
点赞 回复 分享
发布于 2025-08-26 18:34 广东
mark
点赞 回复 分享
发布于 2025-08-26 16:54 浙江
点赞 回复 分享
发布于 2025-08-26 16:43 北京
mark
点赞 回复 分享
发布于 2025-08-26 16:43 北京

相关推荐

问题都比较简单,但是我太久没有背八股了,很多基础知识都忘记了。现在代码都是AI写的,也在学AI应用开发。面试官人非常好,说话很温柔,我没实力。附上面经,其实都很基础。# 自我介绍(噢,你是江财的是吧,校友的实力在此刻凸显)2.. 项目拷打2.1 介绍项目,你的职责(股票智能体SpringAI)2.2 长期记忆如何实现?如果并发量上来了你怎么去优化?(用户画像落库MongoDB,缓存)2.3 MongoDB存的是文本还是向量?(文本,向量存在Pinecone)3. 基础八股3.1 CAS机制、会出现什么问题?(ABA)、长时间自旋怎么解决(面试官给了提示,但我真忘了)3.2 JVM内存模型、垃圾回收机制、垃圾回收器3.3. 一个对象是如何创建的?(忘了)3.4 Java容器(上面答得支支吾吾,面试官还是太友善了,改成简单的)3.5 HashMap的数据结构?为什么使用红黑树?红黑树的原理?(我只知道优化了时间复杂度)3.6 ArrayList VS LinkedList(底层实现、操作复杂度、内存浪费)如何要无限存一些数据,选哪个?为什么?(LinkedList)3.7 HashSet讲一下(确保数据唯一)如何实现的?3.8 MySQL 底层数据结构 B+ 树 VS B树(稳定性、排序对比、B+树的大小)3.9 MySQL的默认隔离级别?如何解决幻读?(可重复读、MVCC&Redo Log)坦白了,我说我现在AI用的多,很多基础知识忘了4. Skills用过吗?有什么作用?(流程封装、节约token)5. 写过SKILL吗?有什么注意事项?如何确保SKILL的稳定、安全和可靠?反问环节:用友怎么用的AI?(面试官说了很多,给了我一些建议)凉凉没跑了,我不知道什么时候投的java,我记得我投的一直是AI应用啊,当我发现时没多少时间了。
查看16道真题和解析
点赞 评论 收藏
分享
04-22 03:21
已编辑
西南石油大学 Java
作为26届的学生, 撞上AI的风口, 肯定是不好受的base地成都, 我从25年七月实习结束之后就一直在投递简历, 期间几乎面完了成都所有的中小厂:九恒星-java开发实习生: 忘了星云联动-前端开发实习生, 忘了海乂知-项目助理: 做军工程序, 断网开发, 没招技术岗, 进去问了三个问题就叫回去等通知鲁大师-Android实习生(九点下班): 面试官水平很高, 但是我当时一问三不知, 前半段在闲聊, 后半段问技术我一直在重复不知道北京万相信息: 一面数据结构, 计算机网络, 简历上的项目, spring的原理, 二面差不多的问题, 挂的原因是(项目经理说你不太稳定, 看起来有点浮躁)晓多科技: 忘了致远互联:一面问: 如果客户那边报来一个问题, 你会如何解决我首先查看用户问题发生的页面, 定位到前端具体的文件, 然后通过浏览器调试工具了解相关问题是页面处理逻辑问题还是网络问题, 后者还需要我落实到后端具体的业务接口去看代码, (然后我结合了我实习期间做的一个接口修复做了说明)如果问题发生了, 你还是只能在无头服务器上定位问题. 你怎么办我会使用jps, jstack等工具, 手动调用用户问题涉及到的接口之后观察jvm堆栈的情况, 了解是哪个线程在处理什么业务时发生了问题, 然后落实到具体的线程对应的具体业务, 当然还是要紧贴业务具体解决二面问: 我们部门大部分工作都是对接用户那边的问题, 然后解决工单, 可能涉及到代码的编写很少, 不知道你能不能接受(我肯定不能接受, 应届生要想保持竞争力怎么可能不写代码)三面HR面试: 通过各种问题考察, 你能不能在客户服务部门当一个技术客服, 我故意问了很多晋升与转部门的话题, hr面挂了成都阳程智启软件:用过什么数据库, mysql与postgresql的区别, 你开发过Agent项目吗, 如果项目的提示词窗口不够大怎么办, 向量数据库在你的Agent项目里面起到了什么作用,  ... 大部分都与AI相关北京北方新宇(对日开发, 日常开发完全断网, 入职之后有日语培训, 薪资水平在6k左右浮动):线下笔试: 考的全是老掉牙的问题, 包括前端, 后端, 数据库, 没有涉及到框架, 全是java语言特性与html原生设计, 数据库最难的也不过左连接与右链接,由于我们三个笔试做得很烂, 面试官直接一面三: union与union all的语义, java并发编程中, 有哪些方法保证线程安全..., 你的优点与缺点是什么, 你在大学期间做过的最印象深刻的是什么, (由于我大部分都直接抢答, 另外两位也一问三不知, 面试通过)滴滴:https://www.nowcoder.com/feed/main/detail/ebfd2aee449046fdb5790209af5550bf?sourceSSR=users虎牙:首先手撕算法, 用String类型实现两数相加,然后Android相关面试题:Android的消息机制;View测量, 布局以及绘制原理,Android BitMap压缩策略,Parcelable和Serializable的作用、效率、区别及选择Android事件分发机制还有其他多如牛毛的线上面试, 其中体验最差的便是广州叶子公司, 线上面试持续一个小时, 从java语言基础到计算机网络, 再到spring, 再到分布式组件, 再到对实习中的项目进行微服务重构. 几乎全部回答上来, 结果告知我在微服务层面的技术深度还不够(这是实习岗位, 转正6k)整体上来说,中小型公司比较喜欢问spring,一二线大厂喜欢问java并发, jvm, 手撕算法,其他几乎都是围绕着实习期间做的项目或者自己写的项目中小厂没有笔试,大厂的笔试都是围绕着牛客网作为笔试平台, 围绕着三方面展开, 分别是单选, 多选以及编程, 一线大厂的编程题会有动态规划(迅雷今年的春招, 三道编程题有两道动态规划), 二三线大厂的编程题会考察三个方面, java原生api, java并发编程, 有的甚至会考sql(比如说汉得信息),对于leetcode, 我没有系统性地刷过. 在这么多面试, 大厂必考手撕算法(主要是围绕简单或者中等难度的题, 这些题往往考察用数据结构优化时间复杂度), 中小厂几乎不考更重要的隐性问题就是你的性格, 中小厂现在极为看中个人性格是否稳定, 他们通常会通过自我介绍, 询问你的职业规划, 为什么从上一家公司离职(必问), 期望薪资如何, 有考公考研的计划吗(直接回答没有).我在25年11月份之后挂掉的面试大部分都是性格问题, 经常在最后一环面试中被评定为性格过于积极, 不适合枯燥的编码工作,
查看21道真题和解析
点赞 评论 收藏
分享
评论
108
757
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务