模板的主要作用:可以帮助简化创建索引的语句,将模板中的配置和映射应用到创建的索引中。
新建索引时,索引名称满足index_patterns
条件的,将会使用索引模板中的配置和映射。index_patterns
使用*
进行通配,不支持复杂的正则。
indexPattern
要求:
不能包含空字符
不能以_
开头
不能包含以下特殊字符
\ / ? " < > | , #
如果索引匹配了多个索引模板,将通过order
,按升序逐个应用和覆盖相同的配置和映射,order
默认值为0,如果多个模板的order
一致,则模板应用顺序不可控。
创建修改模板语法一样,把修改后的模板在PUT或者POST一下。修改时,模板内容是全量覆盖的。
新建索引模板gudong_1
PUT _template/gudong_1
{
"index_patterns": ["gudong*"],
"order" : 0,
"settings": {
"number_of_shards": 1
},
"mappings": {
"_doc": {
"properties": {
"message": {
"type": "keyword"
},
/* 数据插入的时间 */
"create_date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
}
创建索引gudong20211221001
PUT gudong20211221001
查询索引结果
{
"gudong20211221001": {
"aliases": {},
"mappings": {
"_doc": {
"properties": {
"create_date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"message": {
"type": "keyword"
}
}
}
},
"settings": {
"index": {
"creation_date": "1640054016128",
"number_of_shards": "1",
"number_of_replicas": "1",
"uuid": "TnVhs-7sQ3Wg-BuqSJUEmQ",
"version": {
"created": "6070299"
},
"provided_name": "gudong20211221001"
}
}
}
}
新建索引模板gudong_2
PUT _template/gudong_2
{
"index_patterns": ["gudong*"],
"order" : 2,
"settings": {
"number_of_shards": 1
},
"mappings": {
"_doc": {
"properties": {
"content": {
"type": "keyword"
}
}
}
}
}
创建索引gudong20211221002
PUT gudong20211221002
查询索引结果,可以发现同时应用了模板gudong_1和gudong_2
{
"gudong20211221002": {
"aliases": {},
"mappings": {
"_doc": {
"properties": {
"content": {
"type": "keyword"
},
"create_date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"message": {
"type": "keyword"
}
}
}
},
"settings": {
"index": {
"creation_date": "1640054892925",
"number_of_shards": "1",
"number_of_replicas": "1",
"uuid": "Ew8LYOJmRFWMFGs4doZ_Pg",
"version": {
"created": "6070299"
},
"provided_name": "gudong20211221002"
}
}
}
}
查询所有的模板列表
GET _cat/templates?v&s=name
验证模板是否存在,通过HTTP状态码来判断, 200 表示存在,404 表示不存在。
HEAD _template/gudong_1
查询模板详细内容
GET _template/gudong_1,gudong_2
查询所有模板的详细内容
GET /_template
通配符查询
GET /_template/gudong_*
单个模板删除
DELETE /_template/template_1
通配符删除
DELETE /_template/gudong_*
不支持多个模板名以逗号隔开的方式进行删除,不支持DELETE /_template/template_1,template_2
模板可以选择添加一个版本号,它可以是任何整数值,以简化外部系统对模板的管理。 version 字段是完全可选的,它仅用于模板的外部管理。 要取消设置版本,只需替换模板而不指定模板。
PUT /_template/template_1
{
"index_patterns" : ["*"],
"order" : 0,
"settings" : {
"number_of_shards" : 1
},
"version": 123
}
直接查询版本
GET /_template/template_1?filter_path=*.version
{
"template_1" : {
"version" : 123
}
}