Elasticsearch面试题

《林老师带你学编程》知识星球是由多个工作10年以上的一线大厂开发人员联合创建,希望通过我们的分享,帮助大家少走弯路,可以在技术的领域不断突破和发展。

🔥 具体的加入方式:

简要介绍一下 Elasticsearch?

Elasticsearch 是一个分布式、RESTful  风格的搜索和数据分析引擎,能够解决不 断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助

您发现意料之中以及意料之外的情况。

ElasticSearch    是基于 Lucene   的搜索服务器。它提供了一个分布式多用户能力的 全文搜索引擎,基于RESTful   web 接口。Elasticsearch  是 用 Java 开发的,并作

为 Apache  许可条款下的开放源码,是当前流行的企业级搜索引擎。

核心特点如下:

1、 分布式的实时文件存储,每个字段都被索引且可用于搜索。

2、  分布式的实时分析搜索引擎,海量数据下近实时秒级响应。

3、  简 单 的 restful      api, 天生的兼容多语言开发。

4、  易扩展,处理 PB 级结构化或非结构化数据。

您能否说明当前可下载的稳定 Elasticsearch 版本?

Elasticsearch    当前最新版本是7 . 10(2020年11月21日 ) 。

为什么问这个问题? ES  更新太快了,应聘者如果了解并使用最新版本,基本能说

明他关注 ES 更新。甚至从更广维度讲,他关注技术的迭代和更新。

但,不信你可以问问,很多求职者只知道用了 ES,  什么版本一概不知。

安装 Elasticsearch   需要依赖什么组件吗?

ES 早期版本需要 JDK,  在 7 .X 版本后已经集成了 JDK,  已无需第三方依赖。

您能否分步介绍如何启动 Elasticsearch  服务器?

启动方式有很多种, 一般 bin  路径下

./elasticsearch    -d

就可以后台启动。

打开浏览器输入 http://ES IP:9200 就能知道集群是否启动成功。  7

如果启动报错,日志里会有详细信息,逐条核对解决就可以。

能 列 出 1 0 个 使 用 Elasticsearch 作为其搜索引擎或数据库的

公司吗?

这个问题,铭毅本来想删掉。但仔细一想,至少能看出求职者的视野够不够开阔。 参与过 Elastic 中文社区活动或者经常关注社区动态的就知道,公司太多了,列举

如下(排名不分先后):

1、 阿里

2、 腾讯

3、 百度

4、 京 东

5、 美 团

6、小米

7、 滴滴

8、 携程

9、 今日头条

10、  贝壳找房

11、   360

12、  IBM

13、  顺丰快递

几乎我们能想到的互联网公司都在使用 Elasticsearch。

关注 TOP  互联网公司的相关技术的动态和技术博客,也是一种非常好的学习方

式 。

解释一下 Elasticsearch Cluster?

Elasticsearch 集群是 一组连接在 一起的 一个或多个 Elasticsearch 节点实例。

Elasticsearch 集群的功能在于在集群中的所有节点之间分配任务,进行搜索和建

立索引。

解释一下 Elasticsearch  Node?

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

这里节点实际就是; 一个独立的 Elasticsearch   进程, 一般将一个节点部署到一

台独立的服务器或者虚拟机、容器中。

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

主节点

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

数据节点

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

合的操作。

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

的请求转发到数据节点

2、摄 取 节 点

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

解释一下 Elasticsearch 集群中的索引的概念?

Elasticsearch  集群可以包含多个索引,与关系数据库相比,它们相当于数据库表

解释一下 Elasticsearch 集群中的Type 的概念?

5、X 以及之前的2 .X、1.X 版 本ES 支持一个索引多个type 的,举例 ES 6.X 中

的Join 类型在早期版本实际是多 Type  实现的,

在6、0.0 或更高版本中创建的索引只能包含一个 Mapping   类型。

Type  将在 Elasticsearch  7.0.0 中的 API中弃用,并在8.0.0中完全删除。

你能否在 Elasticsearch 中定义映射?

映射是定义文档及其包含的字段的存储和索引方式的过程。

例如 , 使用映射定义 :

1、 _ 哪些字符串字段应该定义为text  类型。

2、 哪些字段应该定义为:数字,日期或地理位置类型。

3、 自定义规则来控制动态添加字段的类型。

Elasticsearch 的文档是什么?

文档是存储在 Elasticsearch       中 的 JSON    文档。它等效于关系数据库表中的 一行

记录。

解释一下 Elasticsearch 的分片?

当文档数量增加,硬盘容量和处理能力不足时,对客户端请求的响应将延迟。

在这种情况下,将索引数据分成小块的过程称为分片,可改善数据搜索结果的获

取 。

定义副本、创建副本的好处是什么?

副本是分片的对应副本,用在极端负载条件下提高查询吞吐量或实现高可用性。

所谓高可用主要指:如果某主分片K 出了问题,对应的副本分片1会提升为主分

片,保证集群的高可用。

请解释在 Elasticsearch 集群中添加或创建索引的过程?

要添加新索引,应使用创建索引 API  选项。创建索引所需的参数是索引的配置

Settings,   索引中的字段 Mapping    以及索引别名 Alias。

也可以通过模板 Template   创建索引。

在 Elasticsearch  中删除索引的语法是什么?

可以使用以下语法删除现有索引:

DELETE   <index_name>

支持通配符删除:

DELETE my_*

 Elasticsearch   中列出集群的所有索引的语法是什么?

查看更多