模拟索引模板 API
编辑模拟索引模板 API
编辑返回特定索引模板将应用的索引配置。
resp = client.indices.simulate_template( name="template_1", ) print(resp)
const response = await client.indices.simulateTemplate({ name: "template_1", }); console.log(response);
POST /_index_template/_simulate/template_1
请求
编辑POST /_index_template/_simulate/<index-template>
路径参数
编辑-
<index-template>
- (可选,字符串)要模拟的索引模板的名称。 要在将模板配置添加到集群之前进行测试,请省略此参数并在请求正文中指定模板配置。
查询参数
编辑-
create
- (可选,布尔值)如果为
true
,则仅当没有现有模板与相同的索引模式匹配时,才会使用在正文中传递的模板。 如果为false
,则模拟将使用优先级最高的模板。 请注意,在任何情况下都不会永久添加或更新模板;它仅用于模拟。 默认为false
。 -
master_timeout
- (可选,时间单位)等待主节点的时间。 如果主节点在超时过期之前不可用,则请求失败并返回错误。 默认为
30s
。 也可以设置为-1
表示请求永远不应超时。 -
include_defaults
- (可选,布尔值) [预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 Elastic 将努力修复任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 的约束。 中的功能。 如果为
true
,则在响应中返回所有默认设置。 默认为false
。
请求正文
编辑-
data_stream
-
(可选,对象)如果包含此对象,则该模板用于创建数据流及其后备索引。 支持空对象。
数据流需要一个具有
data_stream
对象的匹配索引模板。 请参阅 创建索引模板。 -
index_patterns
-
(必需,字符串数组)用于在创建期间匹配数据流和索引名称的通配符 (
*
) 表达式数组。Elasticsearch 包括几个内置索引模板。 为了避免与这些模板发生命名冲突,请参阅 避免索引模式冲突。
-
_meta
- (可选,对象)关于索引模板的可选用户元数据。 可以包含任何内容。 此映射不是由 Elasticsearch 自动生成的。
-
priority
- (可选,整数)用于确定创建新数据流或索引时索引模板优先级的优先级。 选择优先级最高的索引模板。 如果未指定优先级,则将模板视为优先级为 0(最低优先级)。 此数字不是由 Elasticsearch 自动生成的。
-
template
-
(可选,对象)要应用的模板。 它可以选择包含
aliases
、mappings
或settings
配置。template
的属性-
aliases
-
(可选,对象数组的对象)要添加的别名。
如果索引模板包含
data_stream
对象,则这些是数据流别名。 否则,这些是索引别名。 数据流别名忽略index_routing
、routing
和search_routing
选项。aliases
对象的属性-
<alias>
-
(必需,对象)键是别名名称。 索引别名名称支持日期数学。
对象主体包含别名的选项。 支持空对象。
<alias>
的属性-
filter
- (可选,查询 DSL 对象)用于限制别名可以访问的文档的查询。
-
index_routing
- (可选,字符串)用于将索引操作路由到特定分片的值。 如果指定,此值将覆盖索引操作的
routing
值。 -
is_hidden
- (可选,布尔值)如果为
true
,则别名为隐藏的。 默认为false
。 别名的所有索引必须具有相同的is_hidden
值。 -
is_write_index
- (可选,布尔值)如果为
true
,则索引是别名的写入索引。 默认为false
。 -
routing
- (可选,字符串)用于将索引和搜索操作路由到特定分片的值。
-
search_routing
- (可选,字符串)用于将搜索操作路由到特定分片的值。 如果指定,此值将覆盖搜索操作的
routing
值。
-
-
-
mappings
-
(可选,映射对象)索引中字段的映射。 如果指定,此映射可以包括
请参阅 映射。
-
settings
- (可选,索引设置对象)索引的配置选项。 请参阅 索引设置。
-
-
version
- (可选,整数)用于在外部管理索引模板的版本号。 此数字不是由 Elasticsearch 自动生成的。
-
deprecated
- (可选,布尔值)将此索引模板标记为已弃用。 在创建或更新使用已弃用组件的未弃用索引模板时,Elasticsearch 将发出弃用警告。
响应正文
编辑-
overlapping
-
(数组)任何被指定模板取代的模板。
overlapping
的属性-
index_patterns
- (数组)被取代的模板应用的索引模式。
-
name
- (字符串)被取代的模板的名称。
-
-
template
-
(对象)将应用于匹配索引的设置、映射和别名。
template
的属性-
aliases
-
(可选,对象数组的对象)索引的别名。 如果索引模板包含
data_stream
,则不支持此参数。aliases
对象的属性-
<alias>
-
(必需,对象)键是别名名称。 索引别名名称支持日期数学。
对象主体包含别名的选项。 支持空对象。
<alias>
的属性-
filter
- (可选,查询 DSL 对象)用于限制别名可以访问的文档的查询。
-
index_routing
- (可选,字符串)用于将索引操作路由到特定分片的值。 如果指定,此值将覆盖索引操作的
routing
值。 -
is_hidden
- (可选,布尔值)如果为
true
,则别名为隐藏的。 默认为false
。 别名的所有索引必须具有相同的is_hidden
值。 -
is_write_index
- (可选,布尔值)如果为
true
,则索引是别名的写入索引。 默认为false
。 -
routing
- (可选,字符串)用于将索引和搜索操作路由到特定分片的值。
-
search_routing
- (可选,字符串)用于将搜索操作路由到特定分片的值。 如果指定,此值将覆盖搜索操作的
routing
值。
-
-
-
mappings
-
(可选,映射对象)索引中字段的映射。 如果指定,此映射可以包括
请参阅 映射。
-
settings
- (可选,索引设置对象)索引的配置选项。 请参阅 索引设置。
-
示例
编辑模拟现有模板
编辑以下示例创建并模拟一个组合模板
resp = client.cluster.put_component_template( name="ct1", template={ "settings": { "index.number_of_shards": 2 } }, ) print(resp) resp1 = client.cluster.put_component_template( name="ct2", template={ "settings": { "index.number_of_replicas": 0 }, "mappings": { "properties": { "@timestamp": { "type": "date" } } } }, ) print(resp1) resp2 = client.indices.put_index_template( name="final-template", index_patterns=[ "my-index-*" ], composed_of=[ "ct1", "ct2" ], priority=5, ) print(resp2) resp3 = client.indices.simulate_template( name="final-template", ) print(resp3)
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 response = client.indices.simulate_template( name: 'final-template' ) puts response
const response = await client.cluster.putComponentTemplate({ name: "ct1", template: { settings: { "index.number_of_shards": 2, }, }, }); console.log(response); const response1 = await client.cluster.putComponentTemplate({ name: "ct2", template: { settings: { "index.number_of_replicas": 0, }, mappings: { properties: { "@timestamp": { type: "date", }, }, }, }, }); console.log(response1); const response2 = await client.indices.putIndexTemplate({ name: "final-template", index_patterns: ["my-index-*"], composed_of: ["ct1", "ct2"], priority: 5, }); console.log(response2); const response3 = await client.indices.simulateTemplate({ name: "final-template", }); console.log(response3);
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/final-template
创建一个将分片数设置为 2 的组件模板 ( |
|
创建一个将副本数设置为 0 并定义映射的组件模板 ( |
|
创建一个使用组件模板的索引模板 ( |
|
显示 |
响应显示 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" : [ ] }
模拟任意模板配置
编辑要在将模板添加到集群之前查看模板将应用的设置,您可以在请求正文中传递模板配置。 如果指定的模板的优先级高于现有模板,则将该模板用于模拟。
resp = client.indices.simulate_template( index_patterns=[ "my-index-*" ], composed_of=[ "ct2" ], priority=10, template={ "settings": { "index.number_of_replicas": 1 } }, ) print(resp)
response = client.indices.simulate_template( body: { index_patterns: [ 'my-index-*' ], composed_of: [ 'ct2' ], priority: 10, template: { settings: { 'index.number_of_replicas' => 1 } } } ) puts response
const response = await client.indices.simulateTemplate({ index_patterns: ["my-index-*"], composed_of: ["ct2"], priority: 10, template: { settings: { "index.number_of_replicas": 1, }, }, }); console.log(response);
POST /_index_template/_simulate { "index_patterns": ["my-index-*"], "composed_of": ["ct2"], "priority": 10, "template": { "settings": { "index.number_of_replicas": 1 } } }
响应显示任何具有较低优先级的重叠模板。
{ "template" : { "settings" : { "index" : { "number_of_replicas" : "1", "routing" : { "allocation" : { "include" : { "_tier_preference" : "data_content" } } } } }, "mappings" : { "properties" : { "@timestamp" : { "type" : "date" } } }, "aliases" : { } }, "overlapping" : [ { "name" : "final-template", "index_patterns" : [ "my-index-*" ] } ] }