模拟索引 API编辑

返回将从现有 索引模板 应用于指定索引的索引配置。

POST /_index_template/_simulate_index/my-index-000001

请求编辑

POST /_index_template/_simulate_index/<index>

先决条件编辑

  • 如果启用了 Elasticsearch 安全功能,则必须具有 manage_index_templatesmanage 集群权限 才能使用此 API。

路径参数编辑

<index>
(必需,字符串) 要模拟的索引的名称。

查询参数编辑

master_timeout
(可选,时间单位) 等待主节点的时间段。如果在超时时间到期之前主节点不可用,则请求失败并返回错误。默认值为 30s。也可以设置为 -1,表示请求永远不会超时。
include_defaults
(可选,布尔值) [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能支持 SLA 的约束。 。如果为 true,则在响应中返回所有默认设置。默认值为 false

响应主体编辑

overlapping

(数组) 任何也匹配索引但被更高优先级模板取代的模板。如果不存在重叠模板,则响应包含一个空数组。

的属性 overlapping
name
(字符串) 被取代模板的名称。
index_patterns
(数组) 被取代模板应用到的索引模式。
template

(对象) 将应用于索引的设置、映射和别名。

的属性 template
aliases

(对象) 索引的别名。如果不存在应用的别名,则响应返回一个空的 aliases 对象。

<alias>

(对象) 键是别名名称。对象主体包含别名的选项。

的属性 <alias>
filter
(查询 DSL 对象) 用于限制别名可以访问的文档的查询。
index_routing
(字符串) 用于将索引操作路由到特定分片的 value。这将覆盖索引操作的 routing value。
is_hidden
(布尔值) 如果为 true,则别名是 隐藏的
is_write_index
(布尔值) 如果为 true,则索引是别名的 写入索引
routing
(字符串) 用于将索引和搜索操作路由到特定分片的 value。
search_routing
(字符串) 用于将搜索操作路由到特定分片的 value。这将覆盖搜索操作的 routing value。
mappings

(可选,映射对象) 索引中字段的映射。如果指定,则此映射可以包括

参见 映射

如果不存在应用的映射,则从响应中省略。

settings

(可选,索引设置对象) 索引的配置选项。参见 索引设置

如果不存在应用的设置,则响应包含一个空对象。

示例编辑

以下示例显示了将由现有模板应用于 my-index-000001 的配置。

response = client.cluster.put_component_template(
  name: 'ct1',
  body: {
    template: {
      settings: {
        'index.number_of_shards' => 2
      }
    }
  }
)
puts response

response = client.cluster.put_component_template(
  name: 'ct2',
  body: {
    template: {
      settings: {
        'index.number_of_replicas' => 0
      },
      mappings: {
        properties: {
          "@timestamp": {
            type: 'date'
          }
        }
      }
    }
  }
)
puts response

response = client.indices.put_index_template(
  name: 'final-template',
  body: {
    index_patterns: [
      'my-index-*'
    ],
    composed_of: [
      'ct1',
      'ct2'
    ],
    priority: 5
  }
)
puts response
PUT /_component_template/ct1                    
{
  "template": {
    "settings": {
      "index.number_of_shards": 2
    }
  }
}

PUT /_component_template/ct2                    
{
  "template": {
    "settings": {
      "index.number_of_replicas": 0
    },
    "mappings": {
      "properties": {
        "@timestamp": {
          "type": "date"
        }
      }
    }
  }
}

PUT /_index_template/final-template             
{
  "index_patterns": ["my-index-*"],
  "composed_of": ["ct1", "ct2"],
  "priority": 5
}

POST /_index_template/_simulate_index/my-index-000001 

创建一个组件模板 (ct1),它将分片数设置为 2

创建一个第二个组件模板 (ct2),它将副本数设置为 0 并定义一个映射

创建一个索引模板 (final-template),它使用组件模板

显示将应用于 my-index-000001 的配置

响应显示了由 final-template 应用的索引设置、映射和别名

{
  "template" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "2",
        "number_of_replicas" : "0",
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        }
      }
    },
    "mappings" : {
      "properties" : {
        "@timestamp" : {
          "type" : "date"
        }
      }
    },
    "aliases" : { }
  },
  "overlapping" : [
    {
      "name" : "template_1",
      "index_patterns" : [
        "my-index-*"
      ]
    }
  ]
}