Elasticsearch 索引 APIs

2025年3月17日 | 阅读 8 分钟

Elasticsearch 提供了索引 API,用于管理索引的各个方面,例如索引模板、映射、别名和设置等。在 Elasticsearch 中,索引 API 在索引级别执行操作。它负责管理不同的索引、索引设置、索引模板、映射、文件格式和别名。

当请求具有特定映射的索引时,此 API 有助于在该相应索引中添加或更新 JSON 文档。它允许对索引执行许多操作,例如 - 创建、删除、分析、刷新、刷新等等。

下面列出了我们使用一些 API 对索引执行的操作。 我们将通过示例详细讨论每一个操作

创建索引

此 API 用于创建索引。 可以通过发送不带主体的 PUT 请求或使用适当的映射、设置和别名来创建索引。 每当用户将 JSON 对象传递给任何索引时,都会自动创建索引。

在下面的示例中,我们将创建一个名为 book 的索引。

例如

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

使用设置 -

在创建索引时,我们还可以通过在查询中添加一些设置,例如分片或副本 -

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

或使用映射 -

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

请注意,这里我们使用 POST 方法来创建带有映射的索引,而在之前的简单索引创建中,我们使用了 PUT 方法。

获取索引

Get API 用于提供您想要的特定索引的信息。 它获取索引的信息。 只需发送带有索引名称的 GET 请求即可调用此 API,该请求返回有关该特定索引的所有信息。 它使用 Get 请求返回元数据。 请看下面的例子

例如

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

如果要获取有关所有索引的信息,请使用 _all* 代替索引名称。

删除索引

删除 API 负责删除 elasticsearch 中存在的任何索引。 每当您需要删除任何索引时,请传递带有索引名称的删除 API。

您还可以通过一次传递 _all* 来删除 elasticsearch 中存在的所有索引。

例如

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

打开/关闭索引

我们可以关闭索引一段时间,或者稍后可以打开它。 打开/关闭 API 允许我们对索引执行这些操作。 关闭的索引意味着该索引被阻止进行读/写操作,并且除了维护其元数据外,集群上没有开销。 只要您愿意,就可以打开此关闭的索引并启动正常过程。

请参阅以下步骤,了解如何打开和关闭索引 -

1. 转到包含您创建的索引数量的概述选项卡。 在这里,您将看到每个索引都有两个下拉按钮“信息”和“操作”。

Elasticsearch Index APIs

2. 单击您要关闭的索引的操作按钮,然后单击“关闭”按钮。

Elasticsearch Index APIs

3. 将会向您显示一个弹出窗口,您可以在其中单击确定按钮。

Elasticsearch Index APIs

4. 现在,您将看到您选择的索引已关闭。

Elasticsearch Index APIs

5. 单击操作下拉列表以重新打开关闭的索引,然后单击打开按钮。

Elasticsearch Index APIs

您还可以使用此界面执行一些其他操作,例如删除、刷新或刷新索引。

6. 将弹出一个屏幕以打开索引,您可以在其中单击确定按钮。

Elasticsearch Index APIs

7. 现在,您可以看到该索引开始正常工作。

Elasticsearch Index APIs

索引是否存在

通过发送 get 请求,可以确定索引的存在。 如果 HTTP 响应为 202,则索引存在,如果返回响应为 Error 404,则索引不存在。

也可以使用查询请求打开和关闭索引。 请看下面的例子 -

关闭索引

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

打开索引

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

索引别名

此 API 允许我们为索引创建别名。 要创建简单的别名,请使用 _alias 关键字,对于复杂的别名,请使用 _aliases。 请记住,别名名称不能与索引名称相同。 因此,始终为新别名提供不同的名称。 请参阅下面给出的示例 -

例如

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

获取别名

现在,您可以使用 GET 请求取回有关创建的别名 book_pri 的信息。 执行以下代码以获取别名的所有信息 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

删除别名

删除别名类似于向索引添加别名。 我们只需要在 add 的位置放置 remove 关键字并执行请求。 请看下面给出的示例 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

分析

此 API 帮助我们分析变量中传递的文本。 它会断开文本字符串并返回带有 token 值和偏移值(即,起始偏移量和结束偏移量)的 token。 在 elasticsearch 中,它允许用户在不指定任何索引的情况下执行分析。 但是,我们也可以使用索引来分析文本,其中文本将根据与索引关联的分析器进行分析。

请看下面的示例,用于在不指定任何索引的情况下分析文本 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

索引模板

创建索引时会自动应用索引模板。 我们还可以使用索引模板 API 定义索引的模板。 请看下面给出的示例 -

复制代码

在定义此模板后,任何以 te 开头的索引都将具有与 template1 相同的设置。

索引设置

URL 的末尾附加 _settings 关键字以获取索引设置。 请看下面给出的示例 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

索引统计

Stats 代表统计信息。 有时,我们需要分析特定索引的统计信息。 此 API 有助于查找您想要的索引的统计信息。 为此,我们只需要使用 GET 方法,并在 URL 中将 _stats 关键字与索引名称一起附加,然后执行查询。 请看下面给出的示例 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

索引刷新

  • 刷新 API 用于清理索引的内存以及内部事务日志。
  • 它还会将数据迁移到索引存储。
  • 要对索引执行此操作,请使用 _flush 关键字。 基本上,它有助于从索引内存中刷新所有垃圾数据。

请看下面给出的示例 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

索引刷新

  • 在 elasticsearch 中,刷新是自动调度的,但您也可以使用此 API 手动刷新单个索引。
  • _refresh API 使所有数据在执行的最后一个操作之前都可用。
  • 它允许显式刷新一个或多个索引。 指定您要刷新的索引名称,并在 URL 中附加 _refresh API 并执行查询请求。
  • 不要忘记使用 GET 方法来成功执行查询。

请看下面给出的示例 -

复制代码

通过执行此查询,我们将得到以下响应-

截图

Elasticsearch Index APIs

这些是我们在索引 API 下详细解释的一些操作。