2025 年 ElasticSearch 面试题与答案Top 40

这里为初学者和有经验的候选人准备了 ElasticSearch 面试题和答案,帮助他们找到心仪的工作。

 

ElasticSearch 面试题与答案(针对初学者)

1)什么是 Elasticsearch?

Elasticsearch 是一个 NoSQL 数据库。它基于 Lucene 搜索引擎,并使用 RESTful API 构建。它提供简单的部署、最大可靠性和易于管理。它还提供高级查询以执行详细分析,并集中存储所有数据。它有助于快速搜索文档。


2)Elasticsearch 的重要特性是什么?

Elasticsearch 的重要特性如下:

  • 一个用 Java 编写的开源搜索服务器。
  • 用于索引任何类型的异构数据。
  • 拥有 REST API Web 界面,输出为 JSON。
  • 全文搜索。
  • 近实时(NRT)搜索。
  • 分片、复制、可搜索的 JSON 文档存储。
  • 无模式、基于 REST 和 JSON 的分布式文档存储。
  • 多语言和地理位置支持。

3)什么是集群?

集群是由节点组成的集合,这些节点共同存储数据并提供统一的索引和搜索功能。


4)解释索引

节点是 Elasticsearch 的实例。当 Elasticsearch 实例启动时创建。


5)Elasticsearch 中的文档是什么?

在 Elasticsearch 中,文档是可索引的基本信息单元。它以 JSON(键: 值)对 的形式表示,例如 `{"user": "nullcon"}`。每个文档都与一个类型和一个唯一的 ID 相关联。


6)定义“分片”一词。

每个索引可以分成几个分片,以便分发数据。分片是索引的原子部分,您可以将其分布在集群中,以添加更多节点。


7)Elasticsearch 的重要优点是什么?

Elasticsearch 的重要优点如下:

  • 存储无模式数据,并为您的数据创建模式。
  • 借助多文档 API 按记录操作数据。
  • 对数据进行过滤和查询以获得见解。
  • 基于 Apache Lucene,并提供 RESTful API
  • 它为实时索引使用提供水平可伸缩性、可靠性和多租户能力。
  • 帮助您垂直和水平扩展。

8)什么是 ELK 堆栈?

ELK 堆栈是三个开源产品——Elasticsearch、Logstash 和 Kibana 的集合。它们都由 Elastic 公司开发、管理和维护。

  • E 代表 Elasticsearch:用于存储日志。
  • L 代表 Logstash:用于日志的传输、处理和存储。
  • K 代表 Kibana:一个可视化工具(Web 界面),可通过 Nginx 或 Apache 托管。

9)解释 ELK 堆栈架构。

ELK 堆栈旨在允许用户从任何来源、以任何格式摄取数据,并实时搜索、分析和可视化这些数据。

  • 日志:识别需要分析的服务器日志。
  • Logstash:收集日志和事件数据。它还可以解析和转换数据。
  • ElasticSearch:将 Logstash 转换后的数据存储、搜索和索引。
  • Kibana:Kibana 使用 Elasticsearch DB 进行探索、可视化和共享。

10)使用 ELK 堆栈的原因是什么?

使用 ELK 堆栈的原因如下:

  • 当来自企业各种应用程序的日志汇聚到同一个 ELK 实例时,ELK 的效果最佳。
  • 它为该单个实例提供了出色的洞察力,并且无需登录到上百个不同的日志数据源。
  • 快速的本地安装。
  • 易于部署,可垂直和水平扩展。
  • Elastic 提供了大量语言客户端,包括 Ruby、Python、PHP、Perl、.NET、Java 和 JavaScript 等。
  • 支持多种编程和脚本语言的库。

11)解释 Elasticsearch 中的 Tokenizer。

Tokenizer 将文档的字段值分解成一个流。利用这些值创建和更新倒排索引。之后,将这些值流存储在文档中。


12)Elasticsearch 中的副本是什么?

Elasticsearch 中的每个分片都有 2 个副本,称为副本。它们有助于实现高可用性和容错。


13)您可以对文档执行哪些主要操作?

对文档执行的重要操作如下:

  • 索引文档。
  • 获取文档。
  • 更新文档。
  • 删除文档。

14)Elasticsearch 中的集群是什么?

集群是一个或多个节点的集合,这些节点存储您的全部数据,并在所有节点之间提供联合索引和搜索功能。


15)如何在 Elasticsearch 中删除索引?

要删除 Elasticsearch 中的索引,您需要输入命令:

 DELETE /index name.

例如,`DELETE /website`。


16)解释在索引中添加映射的方法。

Elasticsearch 允许您根据用户在请求体中提供的数据创建映射。其批量功能可用于在索引中添加多个 JSON 对象。

例如,`POST website /_bulk`。


17)Elasticsearch 中有哪些搜索方式?

Elasticsearch 中的搜索方式如下:

多索引、多类型搜索:您可以使用多索引支持系统搜索可应用于所有多个索引的 API。

在 Elasticsearch 中,我们可以跨所有索引、跨所有类型创建某些标签。

  • URI 搜索:通过提供请求参数,使用 URI 执行搜索请求。
  • 请求体搜索:需要通过搜索 DSL 执行搜索请求。它在请求体中包含查询 DSL。

18)Elasticsearch 的最新版本是什么?

截至 2020 年 1 月,Elastic Search 的最新版本是 Elasticsearch 的最新稳定版本。


19)什么是映射?

映射是一个过程,有助于您定义文档如何映射到搜索引擎。其可搜索特性包括字段如何被分词以及是否可搜索。


20)Elastic Search 存储在哪里?

Elasticsearch 是一个分布式文档存储,具有各种类型的目录。您还可以检索可以序列化为 JSON 文档的复杂数据结构。


ElasticSearch 面试题与答案(针对有经验者)

21)什么是 Apache Lucene?

Apache Lucene 是一个开源的信息检索软件库。它最初是用 Java 语言编写的。


22)Elasticsearch 支持的重要配置管理工具如下:

  • Puppet – puppet-elasticsearch
  • Chef – cookbook-elasticsearch
  • Ansible – ansible-elastic search

23)Elasticsearch 中的 NRT 是什么?

NRT 是(近实时搜索)平台的缩写。它是一个近实时搜索平台。这意味着从索引文档到它变得可搜索之间存在轻微的延迟(通常为一秒)。


24)在哪里配置 X-Pack 的设置?

您可以配置 X-Pack 的设置。它在 elasticsearch、logstash 和 kibana.yml(ELK 堆栈)配置文件中具有相关功能。


25)Elasticsearch 中的 cat API 是什么?

这些命令接受查询字符串参数。这有助于查看所有信息和它们提供的标头,以及 /_cat 命令,该命令允许您列出所有可用命令。


26)Elasticsearch cat API 中有哪些可用命令?

cat API 可用的命令如下:

  • Cat aliases, cat allocation, cat count, cat field data
  • Cat health, cat indices, cat master, pending tasks, cat plugins, cat recovery
  • cat repositories, cat snapshots, cat templates

27)什么是 Ingest 节点?

Ingest 节点用于在实际文档索引发生之前预处理文档。它有助于拦截批量请求和索引请求。它还会应用转换,然后将文档传递回批量 API 和索引。


28)使用 X-Pack 命令有哪些方式?

以下 X-Pack 命令有助于您配置安全性:

  • Certgen
  • migrate
  • syskeygen
  • certutil
  • saml-metadata
  • setup-passwords
  • users

29)Elasticsearch 中的单文档 API 是什么?

  • Get API
  • Index API
  • Delete API
  • Update API

30)解释 Elasticsearch 中的 Explore API。

Graph explore API 允许您提取和汇总有关文档的信息。


31)如何在 Elasticsearch 中创建索引?

例如

PUT /client?pretty

GET /_cat/indices?v


32)什么是聚合?

聚合框架通过搜索查询提供聚合数据。它基于称为聚合的简单构建块。它们可以组合起来构建复杂的数据摘要。


33)Elasticsearch 有模式吗?

ElasticSearch 映射可用于强制文档的模式。


34)Elasticsearch 中的 Query DSL 是什么?

Elasticsearch 提供基于 JSON 的完整 Query DSL(领域特定语言)来定义查询。


35)什么是 Elasticsearch 数据节点?

数据节点存储处理索引文档的分片。它们有助于执行数据相关的 CRUD 和搜索聚合操作等。但是,您需要将 node.data=true 设置为使节点成为数据节点。


36)Elasticsearch 中的文档是什么?

文档非常类似于关系数据库中的行。索引中的每个文档都具有不同的结构,但对于相应的字段具有相同的数据类型。

  • MySQL => 数据库 => 表 => 列/行
  • ElasticSearch => 索引 => 类型 => 具有属性的文档

37)解释 Elasticsearch 中的类型。

类型是逻辑索引分区,其语义取决于用户。


38)Elasticsearch 的查询语言是什么?

Elasticsearch 使用 Apache Lucene 查询语言,也称为 Query DSL。


39)Elasticsearch 中的动态映射是什么?

动态映射有助于用户在没有字段名称的非必要配置的情况下索引文档。相反,它将通过 Elasticsearch 使用某些自定义规则自动添加。


40)Elasticsearch 的模糊搜索是什么?

模糊搜索是识别网页文档位置的过程。即与搜索参数相似。当参数与特定信息的搜索对应项无关时,它也能正常工作。

这些面试问题也将有助于您的口试