Elasticsearch面试题
- 直接访问链接:https://t.zsxq.com/14F2uGap7
- 微信扫码下图:
简要介绍一下 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 中列出集群的所有索引的语法是什么?