最新版2022年整理 Elasticsearch 面试题总结(100 道题含答案)

2021年最新版Elasticsearch面试题总结(30 道题含答案)

Elasticsearch

题1:Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

Elasticsearch提供的首个近似聚合是cardinality度量。它提供一个字段的基数,即该字段的distinct或者unique值的数目。它是基于HLL算法的。HLL会先对我们的输入作哈希运算,然后根据哈希运算的结果中的bits做概率估算从而得到基数。其特点是:

1)支持配置精度,用来控制内存的使用(精度高=多内存);

2)小数据集精度非常高;

3)可以通过配置参数,来设置去重需要的固定内存使用量。

无论数千还是数十亿的唯一值,内存使用量只与ES配置的精确度相关。

题2:Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个master,另外 10 个选了另一个 master,怎么办?

1、当集群master候选数量不小于3个时,可以通过设置最少投票通过数量(discovery.zen.minimum_master_nodes)超过所有候选节点一半以上来解决脑裂问题;

2、当候选数量为两个时,只能修改为唯一的一个master候选,其他作为data节点,避免脑裂问题。

题3:列出 10 家使用 Elasticsearch 作为其应用程序的搜索引擎和数据库的公司?

参与过Elastic中文社区活动或者经常关注社区动态的人都知道,使用的公司太多了,列举如下(排名不分先后):

阿里、腾讯、字节跳动、百度、京东、美团、小米、滴滴、携程、贝壳找房、360、IBM、顺丰快递等等,几乎能想到的互联网公司都在使用Elasticsearch。

题4:Elasticsearch 中索引在设计阶段如何调优?

1)根据业务增量需求,采取基于日期模板创建索引,通过roll over API滚动索引;

2)使用别名进行索引管理;

3)每天凌晨定时对索引做force_merge操作,以释放空间;

4)采取冷热分离机制,热数据存储到SSD,提高检索效率;冷数据定期进行shrink操作,以缩减存储;

5)采取curator进行索引的生命周期管理;

5)仅针对需要分词的字段,合理的设置分词器;

6)Mapping阶段充分结合各个字段的属性,是否需要检索、是否需要存储等。

题5:解释一下 Elasticsearch Node?

节点是Elasticsearch的实例。实际业务中,会说:ES集群包含3个节点、7个节点。

这里节点实际就是:一个独立的Elasticsearch进程,一般将一个节点部署到一台独立的服务器或者虚拟机、容器中。

不同节点根据角色不同,可以划分为:

主节点

帮助配置和管理在整个集群中添加和删除节点。

数据节点

存储数据并执行诸如CRUD(创建/读取/更新/删除)操作,对数据进行搜索和聚合的操作。

1、 客户端节点(或者说:协调节点) 将集群请求转发到主节点,将与数据相关的请求转发到数据节点

2、 摄取节点

用于在索引之前对文档进行预处理。

题6:Elasticsearch 中分析器由哪几部分组成?

分析器由三部分构成:

1、字符过滤器(Character Filters)

2、分词器(Tokenizers)

3、分词过滤器(Token Filters)

一个分析器不一定这三个部分都有,但是一般会包含分词器。ES自带的分析器有如下几种:

Standard Analyzer、Simple Analyzer、Whitespace Analyzer、Stop Analyzer、Keyword Analyzer、Pattern Analyzer、Language Analyzers 和 Fingerprint Analyzer。

Elasticsearch内置了若干分析器类型,其中常用的是标准分析器,叫做”standard”。其中Standard Analyzer是ES默认的分析器,如果没有指定任何分析器的话,ES将默认使用这种分析器。

分析器(Analyzer)通常由一个Tokenizer(怎么分词),以及若干个TokenFilter(过滤分词)、Character Filter(过滤字符)组成。

题7:Elasticsearch中的 Ingest 节点如何工作?

ingest节点可以看作是数据前置处理转换的节点,支持pipeline管道设置,可以使用ingest对数据进行过滤、转换等操作,类似于logstash中filter的作用,功能相当强大。

题8:Elasticsearch 中的分析器是什么?

分析(analysis)机制用于进行全文文本(Full Text)的分词,以建立供搜索用的反向索引。

1、在ElasticSearch中索引数据时,数据由为索引定义的Analyzer在内部进行转换。分析器由一个Tokenizer和零个或多个TokenFilter组成。

编译器可以在一个或多个CharFilter之前。分析模块允许您在逻辑名称下注册分析器,然后可以在映射定义或某些API中引用它们。

2、Elasticsearch附带了许多可以随时使用的预建分析器。或者可以组合内置的字符过滤器,编译器和过滤器器来创建自定义分析器。

题9:Elasticsearch 支持哪些配置管理工具?

Ansible、Chef、Puppet和Salt Stack是DevOps团队使用的Elasticsearch支持的配置工具。

题10:ElasticSearch 的节点类型有什么区别?

节点是指ElasticSearch的实例。当启动Elasticsearch的实例,就会启动至少一个节点。

相同集群名的多个节点的连接就组成了一个集群,在默认情况下,集群中的每个节点都可以处理http请求和集群节点间的数据传输,集群中所有的节点都知道集群中其他所有的节点,可以将客户端请求转发到适当的节点。

节点有以下类型:

主(master)节点:在一个节点上当node.master设置为True(默认)的时候,它有资格被选作为主节点,控制整个集群。

数据(data)节点:在一个节点上node.data设置为True(默认)的时候。该节点保存数据和执行数据相关的操作,如增删改查,搜索,和聚合。

客户端节点:当一个节点的node.master和node.data都设置为false的时候,它既不能保持数据也不能成为主节点,该节点可以作为客户端节点,可以响应用户的情况,并把相关操作发送到其他节点。

部落节点:当一个节点配置tribe.*的时候,它是一个特殊的客户端,它可以连接多个集群,在所有连接的集群上执行搜索和其他操作。

题11:精准匹配检索和全文检索匹配检索有什么不同

题12:elasticsearch-中按-id-检索文档的语法是什么

题13:请解释一下-elasticsearch-中聚合的工作原理

题14:elasticsearch-是如何实现-master-选举的

题15:你可以列出-elasticsearch-各种类型的分析器吗

题16:rest-api-相对于-elasticsearch-有哪些优势

题17:详细描述一下-elasticsearch-索引文档的过程

题18:elasticsearch-中常用的-cat-命令有哪些

题19:elasticsearch-中什么是分词器

题20:如何使用-elastic-reporting

题21:master-节点和-候选-master-节点有什么区别

题22:解释一下-elasticsearch-集群中索引的概念-

题23:如何使用-elasticsearch-analyzer-中的字符过滤器

题24:什么是副本replica它有什么作用

题25:elasticsearch-分片是什么

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,我无法提供所有的Elasticsearch面试题及详细答案,因为这是一个非常广泛的主题,并且面试目会因公司和职位的不同而有所变化。不过,我可以给你提供一些常见的Elasticsearch面试题以及它们的一般答案,帮助你更好地准备面试。 1. 什么是Elasticsearch?它的主要特点是什么? 答:Elasticsearch是一个开源的分布式搜索和分析引擎,用于处理大规模数据集。它具有以下主要特点: - 分布式架构:数据分片和复制,实现高可用性和可扩展性。 - 实时数据处理:支持快速的数据索引和搜索。 - 多种查询功能:支持全文搜索、过滤、聚合等多种查询方式。 - 强大的分析能力:支持实时数据分析和可视化。 - 易于使用:具有简单的RESTful API和丰富的客户端库。 2. 解释一下Elasticsearch的数据模型。 答:Elasticsearch使用文档型数据模型,其中每个文档都是一个JSON对象。文档包含了一条或多条字段,每个字段都有自己的数据类型。文档被组织在索引中,索引类似于关系数据库中的表。每个索引可以有多个分片和副本来实现数据的分布和冗余。 3. 什么是倒排索引?为什么Elasticsearch使用倒排索引? 答:倒排索引是一种常见的索引方法,它将每个词映射到包含该词的文档。相比于传统的正排索引(将文档映射到词),倒排索引更适合用于全文搜索。Elasticsearch使用倒排索引来快速定位包含特定词的文档。 4. 什么是分片和副本?它们的作用是什么? 答:分片是将索引拆分为多个部分的过程,每个分片可以存储在不同的节点上。分片可以提高搜索和存储的并发性,并支持数据的水平扩展。副本是分片的复制,用于提高数据的可用性和容错性。副本可以在不同的节点上存储,如果主分片不可用,副本可以接管服务。 5. 如何执行一个简单的查询? 答:通过使用Elasticsearch的RESTful API或客户端库,可以执行以下步骤进行简单查询: - 创建一个连接到Elasticsearch集群的客户端。 - 构造一个查询请求,指定索引、类型和查询条件。 - 发送请求到Elasticsearch,并接收返回的结果。 以上是一些常见的Elasticsearch面试题及一般答案,你可以根据这些问题进行学习和准备,同时也要根据自己的实际经验和知识来进行回答。祝你面试顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值