模拟多组件模板
编辑模拟多组件模板
编辑由于模板不仅可以由多个组件模板组成,还可以由索引模板本身组成,因此有两个模拟 API 用于确定生成的索引设置是什么。
模拟将应用于特定索引名称的设置
resp = client.indices.simulate_index_template( name="my-index-000001", ) print(resp)
const response = await client.indices.simulateIndexTemplate({ name: "my-index-000001", }); console.log(response);
POST /_index_template/_simulate_index/my-index-000001
模拟将从现有模板应用的设置
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
您也可以在模拟请求中指定模板定义。这使您能够在添加新模板之前验证设置是否按预期应用。
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.simulate_template( index_patterns=[ "my*" ], template={ "settings": { "index.number_of_shards": 3 } }, composed_of=[ "ct1", "ct2" ], ) print(resp2)
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.simulate_template( body: { index_patterns: [ 'my*' ], template: { settings: { 'index.number_of_shards' => 3 } }, composed_of: [ 'ct1', 'ct2' ] } ) 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.simulateTemplate({ index_patterns: ["my*"], template: { settings: { "index.number_of_shards": 3, }, }, composed_of: ["ct1", "ct2"], }); console.log(response2);
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" } } } } } POST /_index_template/_simulate { "index_patterns": ["my*"], "template": { "settings" : { "index.number_of_shards" : 3 } }, "composed_of": ["ct1", "ct2"] }
响应显示将应用于匹配索引的设置、映射和别名,以及其配置将被模拟模板体或更高优先级模板取代的任何重叠模板。
{ "template" : { "settings" : { "index" : { "number_of_shards" : "3", "number_of_replicas" : "0", "routing" : { "allocation" : { "include" : { "_tier_preference" : "data_content" } } } } }, "mappings" : { "properties" : { "@timestamp" : { "type" : "date" } } }, "aliases" : { } }, "overlapping" : [ { "name" : "template_1", "index_patterns" : [ "my*" ] } ] }