Link Search Menu Expand Document Documentation Menu

索引上下文

这是一个实验性功能,不建议在生产环境中使用。如需了解此功能的最新进展或提供反馈,请加入 OpenSearch 论坛的讨论。

索引上下文声明了索引的用例。使用上下文信息,OpenSearch 会应用一组预设的设置和映射,这提供了以下好处

  • 优化性能
  • 针对您的特定用例调整的设置
  • 基于 OpenSearch 集成的准确映射和别名

使用组件模板应用的设置和元数据配置会在集群启动时自动加载。以 @abc_template@ 或基于应用程序的配置(ABC)模板开头的组件模板只能通过 context 对象声明使用,以防止配置问题。

安装

要安装索引上下文功能

  1. 使用 安装方法之一在集群的所有节点上安装 opensearch-system-templates 插件。

  2. 将功能标志 opensearch.experimental.feature.application_templates.enabled 设置为 true。有关启用和禁用功能标志的更多信息,请参阅启用实验性功能

  3. cluster.application_templates.enabled 设置设为 true。有关如何配置 OpenSearch 的说明,请参阅配置设置

使用 context 设置

使用索引 API 的 context 设置来添加特定于用例的上下文。

注意事项

在索引创建期间使用 context 参数时,请考虑以下事项

  1. 如果您使用 context 参数创建索引,则在索引创建或动态设置更新期间,不能包含索引上下文中声明的任何设置。
  2. 索引上下文在索引或索引模板上设置后将变为永久性。

当您遵守这些限制时,建议的配置或映射会统一应用于指定上下文中的索引数据。

示例

以下示例展示了如何使用索引上下文。

创建索引

以下示例请求通过将 metrics 映射声明为上下文来创建一个用于存储指标数据的索引

PUT /my-metrics-index
{
  "context": {
    "name": "metrics"
  }
}

创建后,上下文将添加到索引中并应用相应的设置

GET 请求

GET /my-metrics-index

响应

{
    "my-metrics-index": {
        "aliases": {},
        "mappings": {},
        "settings": {
            "index": {
                "codec": "zstd_no_dict",
                "refresh_interval": "60s",
                "number_of_shards": "1",
                "provided_name": "my-metrics-index",
                "merge": {
                    "policy": "log_byte_size"
                },
                "context": {
                    "created_version": "1",
                    "current_version": "1"
                },
                ...
            }
        },
        "context": {
            "name": "metrics",
            "version": "_latest"
        }
    }
}

创建索引模板

您还可以在创建索引模板时使用 context 参数。以下示例请求创建一个索引模板,其上下文信息为 logs

PUT _index_template/my-logs
{
    "context": {
        "name": "logs",
        "version": "1"
    },
    "index_patterns": [
        "my-logs-*"
    ]
}

使用此索引模板创建的所有索引都将获取相关联的组件模板提供的元数据。以下请求和响应展示了 context 是如何添加到模板中的

获取索引模板

GET _index_template/my-logs

响应

{
    "index_templates": [
        {
            "name": "my-logs2",
            "index_template": {
                "index_patterns": [
                    "my-logs1-*"
                ],
                "context": {
                    "name": "logs",
                    "version": "1"
                }
            }
        }
    ]
}

如果您的模板直接声明的任何设置、映射或别名与上下文的后备组件模板之间存在任何冲突,则后者在索引创建期间具有更高的优先级。

可用上下文模板

以下模板可通过 OpenSearch 2.17 的 context 参数使用

  • logs
  • metrics
  • nginx-logs
  • amazon-cloudtrail-logs
  • amazon-elb-logs
  • amazon-s3-logs
  • apache-web-logs
  • k8s-logs

有关这些模板的更多信息,请参阅 OpenSearch 系统模板仓库

要查看集群上这些模板的当前版本,请使用 GET /_component_template

剩余 350 字符

有问题?

想要贡献?