最近在准备面试,正把平时积累的笔记、项目中遇到的问题与解决方案、对核心原理的理解,以及高频业务场景的应对策略系统梳理一遍,既能加深记忆,也能让知识体系更扎实,供大家参考,欢迎讨论。
一、基础概念与核心原理
(一)倒排索引
倒排索引是 ES 实现高效全文搜索的关键。与传统数据库通过记录找内容的正排索引不同,**倒排索引先对文档内容进行分词,再建立"分词-文档ID"的映射关系。**例如文档"我喜欢 Elasticsearch",分词后得到"我"“喜欢”“Elasticsearch”,倒排索引会记录这些分词分别出现在哪些文档里。当进行搜索时,ES 依据倒排索引能快速定位包含目标分词的文档,极大提升了搜索效率。
(二)索引、分片与副本
- 索引(Index):可将其理解为关系型数据库(MySQL)中的"表",是文档的集合,用于存储具有相同结构的数据。
- 分片(Shard):为了实现数据的分布式存储与横向扩展,一个索引会被划分成多个分片。分片又分为主分片和副本分片,主分片用于数据的写入,副本分片是主分片的备份,能提高数据的可用性和查询性能。
- 副本(Replica):副本分片的主要作用是容错和负载均衡。当主分片出现故障时,副本分片可升级为主分片;同时,多个副本分片能分担查询请求,提升系统的查询能力。
(三)版本与依赖
ES 版本迭代较快,不同版本对 Java 环境有不同要求。例如 ES 8 版本需要 JDK 17 及以上版本来支持运行,这是因为新版本 ES 引入了诸多新特性和优化,对 Java 运行时环境的

最低0.47元/天 解锁文章
5125

被折叠的 条评论
为什么被折叠?



