Elasticsearch 面试题集绵
问题1:Elasticsearch为啥是近实时搜索?
答:A. 新增的文档会被收集到Indexing Buffer中,然后文档从Indexing Buffer写入到文件系统缓存中,是需要每秒自动刷新分片,这时索引文档的变化并不是立即对搜索可见。
问题2:Elasticsearch深分页查询有什么问题?
答:A. ES集群的分页查询支持from和size参数,查询的时候,每个分片必须构造一个长度为from+size的优先队列,然后回传到网关节点,网关节点再对这些优先队列进行排序找到正确的size个文档;
B. 由此可见,当from足够大的时候,就算不发生OOM,也会影响到CPU和带宽等,从而影响到整个集群的性能。
问题3:ES查询数据快的原理
答:A. 倒排索引:Elasticsearch使用倒排索引来存储和查询数据。倒排索引是一种数据结构,它将每个文档中的每个字段的值作为关键词,然后建立关键词到文档的映射。这种结构可以快速定位包含某个关键词的文档,从而加速查询速度。
B. 分片和副本:Elasticsearch将数据分片存储在多个节点上,每个分片可以水平扩展存储和查询能力。此外,每个分片还可以有多个副本,确保数据的高可用性和容错性。通过分片和副本的机制,Elasticsearch可以并行处理查询请求,提高查询性能。
C. 缓存和缓存预热:Elasticsearch内置了各种类型的缓存,如字段数据缓存、过滤器缓存等,用于加速查询。此外,Elasticsearch还支持缓存预热,即在查询之前将数据加载到缓存中,从而减少查询时间。
D. 使用近似搜索算法:Elasticsearch支持近似搜索算法,如布隆过滤器、Levenshtein距离等,可以在某种程度上减少倒排索引的检索范围,提高查询效率。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗