Elasticsearch 常见面试题
- 常见面试题
-
- 1、ES 是什么?
- 2、ES 中的 集群、节点、分片、副本、索引、文档、映射、类型、字段 是什么?
- 3、倒排索引是什么?倒排索引的结构?Lucene什么?
- 4、ES 写入数据的 过程?(答下一题的 过程即可)
- 5、 ES 的底层 存储原理?
- 6、ES 读取数据(文档)的过程?
- 7、ES 删除、更改文档的过程?
- 8、ES 搜索的过程?检索文本
- 9、ES 如何选举master 节点?
- 10、ES 出现 脑裂的原因?如何解决?
- 11、如何 监控 ES 的集群状态?
- 12、ES 的优化?存储设备优化?
- 13、ES JVM 调优?调整哪些参数?堆大小、GC、文件系统缓存大小?
- 14、ES 参数配置?分片数量?副本数量?
- 15、ES 参数配置?refresh时间?flush时间、translog 大小?
- 16、ES 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?缓存、数据预热、冷热分离(可对于所有的数据库)
- 17、ES 分页性能优化?避免深度分页
- 18、在并发情况下,Elasticsearch 如果保证读写一致?
- 19、了解字典树吗?
- 20、拼写纠错 是如何实现的?

常见面试题
1、ES 是什么?
ElasticSearch 设计的理念就是分布式搜索引擎,底层其实还是基于 lucene 的。核心思想就是在
多台机器上启动多个 ES 进程实例,组成了一个 ES 集群。
2、ES 中的 集群、节点、分片、副本、索引、文档、映射、类型、字段 是什么?
集群:
- ElasticSearch 设计的理念就是 分布式搜索引擎,底层其实还是基于 lucene 的。核心思想就是在
多台机器上启动多个 ES进程实例,组成了一个 ES 集群。- ES集群由一个或多个Elasticsearch节点组成,每个节点配置相同的 cluster.name 即可加入集群,默认值为 “elasticsearch”。
节点:
- master 节点的职责主要包括集群、节点和索引的管理,不负责文档级别的管理;
- data 节点负责数据的存储和相关的操作,例如对数据进行增、删、改、查和聚合等操作。
- 主节点和其他节点之间通过
Ping的方式互检查,主节点负责Ping所有其他节点,判断是否有节点已经挂掉。其他节点也通过Ping的方式判断主节点是否处于可用状态。分片:
- 索引可以拆分成多个 分片 ,每个 分片 存储部分数据。每个分片又可以拷贝多份,每分片有一个主分片和多个副本分片。
- 这样可以提高性能,数据分布在多个 分片,即多台服务器上,所有的操作,都会在多台机器 上并行分布式执行,提高了吞吐量和性能。
副本:
- 副本分片 就是 主分片的 备份。读数据时可在 主分片和 副本分片上读取,提高并发能力。且当主分片所在的节点宕机后,还有其他节点的分片可用。
索引:
- 索引 相当于 mysql 里的一张
表。存储着结构相近的数据。ES里是倒排索引,具有很高的搜索效率。文档:
- 文档 类比于 mysql 的一
行数据。映射:
- 映射 类比于 mysql 的
表结构定义,规定了 索引里的文档的字段名称 和 类型。字段:
- 字段 类比于 mysql 的
字段(列),是数据的标识。
3、倒排索引是什么?倒排索引的结构?Lucene什么?
倒排索引就是把原本文件ID对应到关键词的映射转换为
关键词到文件ID的映射,每个关键词都对应着一系列的文件,这些文件中都出现这个关键词。在 ES 里面,
倒排索引主要由两部分组成:词典和倒排文件。
- 词典 就是 所有 关键词 的 集合。倒排文件 就是 记录这些关键词 对应的 文档ID 的文件。每个关键字,或说词条,都对应着一个 排序列表,记录着 这些词条出现的文档ID。
- 搜索时, 分词器会将 字符串 分解为 一些 词条。然后根据 倒排索引, 找到这些 词条对应的 文档。然后再对这些文档进行整合处理,得到最终的结果。
Lucene 是一个工具包,它不是一个完整的全文检索引擎。
- Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
- ES 就是 在Lucene 基础上开发的一个 搜索引擎。
4、ES 写入数据的 过程?(答下一题的 过程即可)
客户端发送写请求到任意一个 节点,成为
协调节点。协调节点对
文档ID进行路由计算,确定文档 属于哪个分片 ,然后选择该分片的主分片。然后将请求转发到 主分片 所在的节点上。节点 在该
主分片上 处理请求;在 ES 里, 数据是先写入内存 buffer 中的,然后。。。。(下面的过程)主分片 处理成功后,将请求
并行转发到所有 副本分片所在的节点上。所有副本分片都执行成功后,主分片所在节点向协调节点报告成功。协调节点 向 客户端 报告成功。
5、 ES 的底层 存储原理?

- refresh :数据先写入
本文详细探讨了Elasticsearch的面试重点,包括其核心概念如集群、节点、分片、副本等,深入讲解倒排索引和Lucene的工作原理,以及数据写入、读取、删除和更新的过程。此外,还讨论了ES的存储原理、搜索过程、主节点选举、脑裂问题及其解决方案,并涉及监控、优化和性能提升策略。
最低0.47元/天 解锁文章

3406

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



