索引模板(Index Templates)介绍
索引模板是一种告诉Elasticsearch在创建索引时如何配置索引的方法。对于数据流,索引模板在创建流的后备索引时对其进行配置。在创建索引之前先配置模板,然后在手动创建索引或通过对文档建立索引创建索引时,模板设置将用作创建索引的基础。
模板有两种类型,索引模板和组件模板。组件模板是可重用的构建块,用于配置映射,设置和别名。您使用组件模板构造索引模板,但它们不会直接应用于一组索引。索引模板可以包含组件模板的集合,也可以直接指定设置,映射和别名。
如果新数据流或索引与多个索引模板匹配,则使用优先级最高的索引模板。
使用方法
创建模板
PUT _template/test_template_1
{
"index_patterns": ["log-*"],
"settings": {
"number_of_shards": 1
},
"mappings": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z yyyy"
}
}
}
}
属性含义:
- index_patterns(必需,字符串数组):用于在创建过程中匹配索引名称的通配符表达式数组,模板生成后创建的索引会根据这个模板进行匹配,安装模板配置生成索引
- aliases(可选,alias对象):索引的索引别名(同创建索引)
- mappings(可选,映射对象):映射索引中的字段(同创建索引)。
- settings(可选,索引设置对象):索引的配置选项(同创建索引)。
- version(可选,整数):用于从外部管理索引模板的版本号。
查看索引模板
GET _template/test_template_*
模板版本控制
可以使用该version参数将可选版本号添加到索引模板。外部系统可以使用这些版本号来简化模板管理。
该version 参数完全是可选的,不会由Elasticsearch自动生成。
PUT /_template/test_template_1
{
"index_patterns" : ["log-*"],
"order" : 0,
"settings" : {
"number_of_shards" : 1
},
"version": 123
}
要检查version,可以将get index template API与 filter_path
参数一起使用,以仅返回版本号:
GET /_template/test_template_1?filter_path=*.version
返回结果
{
"template_1" : {
"version" : 123
}
}