Elasticsearch 2023面试必备:知识点大全,含答案

需积分: 5 0 下载量 169 浏览量 更新于2024-08-03 收藏 6KB MD 举报
"Elasticsearch最新2021年面试题大汇总,附答案" ### Elasticsearch面试知识点详解 #### 1. Elasticsearch数据读取机制 Elasticsearch通过RESTful API与各个节点进行通信。当查询请求被发送至集群时,它会根据文档的_id确定对应的分片(shard)。这些分片可能分布在不同的primary和replica节点上。Elasticsearch会采用负载均衡策略,将查询发送到各个节点。每个节点处理查询并返回文档数据给协调节点,协调节点再将结果整合后返回给客户端。这个过程确保了查询的高效和均衡。 #### 2. X-Pack的功能与重要性 X-Pack是Elasticsearch的一个扩展插件,提供了丰富的安全性和管理功能。它包括: - **安全性**:支持基于角色的访问控制(RBAC),允许设定权限、特权和用户角色,确保数据安全。 - **监视**:实时监控集群性能和健康状况。 - **报告**:定期生成性能报告,便于分析和优化。 - **警报**:设置警报阈值,当达到特定条件时自动触发通知。 #### 3. Elasticsearch集群的主节点选举 在Elasticsearch中,当有10个节点选举了第一个master,而另外10个节点选择了第二个master,这种情况称为“脑裂”问题。解决方法包括: - **设置最小主节点数**:通过配置`discovery.zen.minimum_master_nodes`,确保超过半数的候选节点投票给同一个master,防止脑裂。当候选节点数大于3时,此方法有效。 - **调整节点角色**:当候选节点只有两个时,应将其中一个改为唯一master候选,其余节点作为data节点,以避免脑裂。 #### 4. 索引概念 在Elasticsearch集群中,索引(Index)是数据的主要组织单位,类似于关系数据库中的表。一个索引可以包含多个类型(Type,自Elasticsearch 7.0版本后已废弃,现在每个索引仅包含一种类型——_doc_),并且可以配置不同的映射(Mapping)以定义字段的属性和分析规则。 #### 5. Elasticsearch的分析器类型 Elasticsearch支持多种分析器,用于文本的预处理和标准化,以便于搜索。常见的分析器类型包括: - **StandardAnalyzer**:默认分析器,遵循Unicode文本分割算法,适合多语言环境。 - **WhitespaceAnalyzer**:基于空格切词,简单粗暴,适用于不分词的场景。 - **StopAnalyzer**:在SimpleAnalyzer基础上移除停用词,减少常见词汇对搜索的影响。 - **KeywordAnalyzer**:不进行切词,保持原始输入完整,常用于处理ID或标签等无需分词的字段。 - **自定义分析器**:用户可以根据需求创建自己的分析器,如组合不同过滤器或使用特定语言的分词器。 此外,还有其他分析器,如PatternAnalyzer(基于正则表达式切词)、SnowballAnalyzer(用于词干提取)等,以及各种语言分析器,如EnglishAnalyzer、FrenchAnalyzer等,可以根据实际需求选择或定制。