索引

索引策略

策略 是一类配置,用于定义索引可能的状态、当索引进入某一状态时要执行的操作,以及在状态之间转换必须满足的条件:

  1. 状态(States):索引可能处于的状态,包括新索引的默认状态。例如,你可以将状态命名为 hotwarmdelete。详情请参阅 状态

  2. 操作(Actions):当索引进入某一状态时,插件要执行的任意操作,例如执行 rollover(索引滚动)。详情请参阅 操作

  3. 转换(Transitions):索引进入新状态必须满足的条件。例如,如果索引已超过 8 周,你可能希望将其转入 delete 状态。详情请参阅 转换

你也可以上传一个 JSON 文档来指定索引策略。

你在设计策略时拥有完全的灵活性。你可以创建任意状态、从任意状态转换到其他状态,并且在每个状态中指定任意数量的操作。

要将策略附加到索引,请执行以下步骤:

  1. 索引管理 下,选择 Index policies

  2. 选择要附加策略的索引(或多个索引)。

  3. 选择 Apply policy 按钮。

  4. Policy ID 菜单中,选择你已创建的策略。预览你的策略。

  5. (可选):如果你的策略包含 rollover 操作,可指定 rollover 别名(alias)。确保该别名已存在。有关 rollover 操作的更多信息,请参阅 rollover

  6. 选择 Apply 按钮。

在你将策略附加到索引后,Index State Management(ISM)会创建一个作业,默认每 5 分钟运行一次,用于执行策略操作、检查条件并将索引迁移到不同状态。若要更改此作业的默认时间间隔,请参阅 Settings

当集群状态为 red 时,策略作业不会运行。

托管索引(Managed indexes)

要将策略附加到索引,请执行以下步骤:

  1. Index Management 下,选择 Manage Indices

  2. 选择要附加策略的索引(或多个索引)。

  3. 选择 Change policy 按钮。

  4. 选择 Apply policy 按钮。

索引(Indexes)

Indices 部分显示你 OpenSearch 集群中的索引列表。对于每个索引,你可以查看其健康状态(greenyellowred)、策略(如果该索引受策略管理)、状态、总大小、主分片大小、文档总数、已删除文档数、主分片数和副本数等信息。

以下为三种索引健康状态说明:

  • Green:所有主分片和副本分片均已分配。

  • Yellow:至少有一个副本分片未分配。

  • Red:至少有一个主分片未分配。

创建索引

你可以使用文档作为基础来创建索引,也可以创建一个空索引以备后用。

要创建索引,请在 Index ManagementIndices 部分点击 Create Index 按钮。然后通过设置以下参数来定义索引:

  • 索引名称

  • 主分片数量(number of primary shards)

  • 副本数量(number of replicas)

  • 刷新间隔(refresh interval)

你也可以使用可视化编辑器或 JSON 编辑器添加字段和对象映射。

高级设置(Advanced settings) 允许你上传 JSON 配置。

应用策略(Applying a policy)

  • 如果你在分析时间序列数据,通常会希望优先保留新数据而不是旧数据。你可能会周期性地对较旧的索引执行某些操作,例如减少副本数或删除它们。

  • ISM 插件可以让你根据索引年龄、索引大小或文档数量的变化来触发这些周期性管理操作,从而实现自动化。你可以定义策略来自动处理索引滚动(rollover)或删除,以满足你的使用场景。

  • 例如,你可以定义一个策略,使索引在 30 天后进入 read_only 状态,并在 90 天后删除。你还可以设置在索引删除时向你发送通知消息。

  • 你可能会在达到一定时间后对索引执行 rollover,或在非高峰时段对索引运行 force_merge 操作,以在高峰时段提高查询性能。

  • 要应用策略,请在 Index ManagementIndices 列表中选择要应用策略的索引。然后选择 Actions 按钮,并从下拉菜单中选择 Apply policy,如下面图示所示。

用户界面显示应用策略提示

关闭索引(Closing an index)

  • 关闭索引操作会关闭索引。索引被关闭后,不能向其添加数据,也不能对其执行搜索。

  • 要关闭索引,请在 Index ManagementIndices 列表中选择要关闭的索引。然后选择 Actions 按钮,并从下拉菜单中选择 Close

打开索引(Opening an index)

  • 打开索引操作会打开已关闭的索引,从而允许向其添加数据或对其执行搜索。

  • 要打开索引,请在 Index ManagementIndices 列表中选择要打开的索引。然后选择 Actions 按钮,并从下拉菜单中选择 Open

重新索引(Reindexing an index)

-reindex操作允许你将源索引中的全部或部分数据复制到目标索引中。

  • 要重新索引,请在 Index ManagementIndices 列表中选择索引。然后选择 Actions 按钮,并从下拉菜单中选择 Reindex,如下图所示。

用户界面显示重新索引提示

缩减索引(Shrinking an index)

  • shrink操作会将现有索引中的所有数据复制到一个具有更少主分片的新索引中。

  • 要缩减索引,请在 Index ManagementIndices 列表中选择要缩减的索引。然后选择 Actions 按钮,并从下拉菜单中选择 Shrink,如下图所示。

用户界面显示缩减提示

拆分索引(Splitting an index)

  • split index操作会将现有的只读索引拆分为一个新索引,在新索引中把每个主分片拆分为多个主分片。

  • 要拆分索引,请在 Index ManagementIndices 列表中选择要拆分的索引。然后选择 Actions 按钮,并从下拉菜单中选择 Split,如下图所示。

用户界面显示拆分页面

刷新索引(Refreshing an index)

  • 刷新索引会使对索引的新更新对搜索操作可见。

  • 刷新操作只能对打开的索引执行。

  • 要刷新所有索引,请从 Actions 下拉菜单中选择 Refresh

  • 要刷新某个特定索引,请在 Index ManagementIndices 列表中选择该索引。然后从 Actions 下拉菜单中选择 Refresh

冲刷索引(Flushing an index)

  • flush 操作会执行 Lucene 提交,将段写入磁盘并启动新的 translog。

  • flush 操作只能对打开的索引执行。

  • 要对所有索引执行 flush,请从 Actions 下拉菜单中选择 Flush

  • 要对特定索引执行 flush,请在 Index ManagementIndices 列表中选择该索引。然后从 Actions 下拉菜单中选择 Flush

清除索引缓存(Clearing an index cache)

-清除缓存操作只能对打开的索引执行。

  • 要清除所有索引缓存,请从 Actions 下拉菜单中选择 Clear cache

  • 要清除特定索引的缓存,请在 Index ManagementIndices 列表中选择该索引。然后从 Actions 下拉菜单中选择 Clear cache

删除索引(Deleting an index)

  • 如果你不再需要某个索引,可以使用 删除索引操作将其删除。

  • 要删除索引,请在 Index ManagementIndices 列表中选择要删除的索引。然后选择 Actions 按钮,并从下拉菜单中选择 Delete

模板(Templates)

  • 索引模板 允许你使用预定义的映射和设置来初始化新索引。例如,如果你持续写入日志数据,可以定义一个索引模板,使得所有索引具有相同的分片数和副本数,如下图所示。

用户界面显示模板页面

创建模板

要创建模板,请在 Index ManagementTemplates 页面点击 Create template 按钮。

然后定义模板:

  1. 输入模板名称。

  2. 选择模板类型。

  3. 指定你希望使用的索引模式(index patterns)。

  4. 设置模板优先级(priority)。

  5. 选择索引别名(index alias)。

  6. 设置主分片数量。

  7. 设置副本数量。

  8. 设置刷新间隔(refresh intervals)。

  9. 使用可视化编辑器或 JSON 编辑器为索引映射添加字段和对象。

  10. Advanced Settings(高级设置) 下,你可以使用逗号分隔列表指定高级索引设置,如下图所示。

用户界面显示创建模板页面

编辑模板

  • 要编辑模板,请从模板列表中选择要编辑的模板。然后点击 Actions 下拉菜单,选择 Edit

删除模板

  • 要删除模板,请从模板列表中选择要删除的模板。然后点击 Actions 下拉菜单,选择 Delete

别名(Aliases)

  • 别名是可以指向一个或多个索引的虚拟索引名称。如果你的数据分布在多个索引中,与其手动维护要查询的索引列表,你可以创建一个别名并查询该别名,如下图所示。

用户界面显示别名页面

创建别名

要创建别名,请执行以下步骤:

  1. Index ManagementAliases 页面点击 Create Alias 按钮。

  2. 指定别名名称。

  3. 输入要包含在别名中的索引或索引模式。

  4. 点击 Create alias,如下图所示。

用户界面显示创建别名页面

编辑别名

要编辑别名,请执行以下步骤:

  1. 选择要编辑的别名。

  2. 点击 Actions 按钮。

  3. 从下拉菜单中选择 Edit

删除别名

要删除别名,请执行以下步骤:

  1. 选择要删除的别名。

  2. 点击 Actions 按钮。

  3. 从下拉菜单中选择 Delete

刷新别名(Refreshing an alias)

  • 刷新别名会使与指定别名相关联的索引的新更新对搜索操作可见。

  • 刷新操作只能应用于与该别名关联的打开索引。

  • 要刷新某个别名,请在 Index ManagementAliases 列表中选择该别名。然后从 Actions 下拉菜单中选择 Refresh

冲刷别名(Flushing an alias)

  • flush 操作会执行 Lucene 提交,将段写入磁盘并启动新的 translog。

  • flush 操作只能应用于与该别名关联的打开索引。

  • 要对别名执行 flush,请在 Index ManagementAliases 列表中选择该别名。然后从 Actions 下拉菜单中选择 Flush

清除别名缓存(Clearing an alias cache)

  • 清除缓存操作只能应用于与该别名关联的打开索引。

  • 要清除别名缓存,请在 Index ManagementAliases 列表中选择该别名。然后从 Actions 下拉菜单中选择 Clear cache

Rollup 作业(Rollup jobs)

Rollup Jobs 部分位于 Index Management 下,允许你创建或更新索引 rollup 作业。

要创建 rollup 作业,请执行以下步骤:

  1. Index ManagementRollup Jobs 页面点击 Create rollup job 按钮。

  2. 设置名称、源索引和目标索引。

  3. 点击 Next

  4. 设置时间戳字段和间隔类型。

  5. 可选:设置附加聚合和指标。

  6. 点击 Next

  7. Schedule(计划) 下,勾选或取消勾选 Enable job by default

  8. 设置 ContinuousExecution frequencyRollup intervalPages per execution 设置。

  9. 你还可以设置执行延迟(execution delay)。

  10. 点击 Next

  11. 审核 rollup 作业的设置并选择 Create

你还可以在 Rollup Jobs 页面通过对应按钮启用或禁用 rollup 作业。

Transform 作业(Transform jobs)

你可以创建、启动、停止并完成与 transform 作业相关的操作。

要创建 transform 作业,请执行以下步骤:

  1. Index ManagementTransform Jobs 页面点击 Create transform job 按钮。

  2. 设置名称、源索引和目标索引。

  3. 点击 Next

  4. 选择要转换的字段。在表格中,点击字段名称旁的 +,选择你想要转换的字段。

  5. 点击 Next

  6. 勾选或取消勾选 Job enabled by default

  7. 设置转换执行间隔以及计划是否为连续(continuous)。

  8. 可选:在 Advanced(高级) 下拉菜单中设置每次执行的页面数(pages per execution)。

  9. 点击 Next

  10. 审核设置并选择 Create

你也可以在 Transform Jobs 页面通过对应按钮启用或禁用 transform 作业。

长时间运行操作状态检查(Long-running operation status check)

  • 某些索引操作需要额外时间完成(通常超过 30 秒,但可能需要数十分钟或数小时)。这些操作会在 Indices 页面 的索引状态列中进行跟踪。

  • 你可以检查 reindex、shrink 和 split 操作的状态,因为它们是一次性、非递归的操作。

安全集成(Security integration)

  • 权限控制由现有的 permissions 或在 API 级别强制执行的 action groups 管理。当前尚无 UI 级别的权限控制。具有访问 ISM 插件权限的用户可以查看新页面;如果他们拥有运行相关 API 的权限,也可以进行更改。

错误处理(Error handling)

  • 与 API 调用类似,如果操作立即失败,你会收到错误消息通知。但如果是长时间运行的操作,你将在失败时收到通知,或者你可以在 Indices 页面检查索引状态。