Elasticsearch - 索引库模板使用详解
作者:hangge | 2025-05-16 08:39
在实际工作中针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的 settings 和 mapping 配置信息的话就很麻烦了。我们可以通过提前创建一个索引库模板,这样后期在创建索引库的时候,只要索引库的命名符合一定的要求就可以直接套用模板中的配置。下面我将通过样例演示如何创建和使用模板。
1,创建模板
(1)下面命令我们创建第一个索引库模板,该模板默认会匹配所有的索引库。
curl -H "Content-Type: application/json" -XPUT 'http://192.168.121.128:9200/_template/t_1' -d '
{
"template" : "*",
"order" : 0,
"settings" : {
"number_of_shards" : 2
},
"mappings" : {
"properties":{
"name":{"type":"text"},
"age":{"type":"integer"}
}
}
}'
(2)接着创建第二个索引库模板,该模板只会匹配索引库名称以 te 开头的索引库,通过 template 属性配置的。
注意:order 值大的模板内容会覆盖 order 值小的。因此,如果我们创建的索引库名称满足第二个就会使用第二个模板,不满足的话才会使用第一个模板。
curl -H "Content-Type: application/json" -XPUT 'http://192.168.121.128:9200/_template/t_2' -d '
{
"template" : "te*",
"order" : 1,
"settings" : {
"number_of_shards" : 3
},
"mappings" : {
"properties":{
"name":{"type":"text"},
"age":{"type":"long"}
}
}
}'
2,使用模板
(1)下面创建一个索引库,索引库名称为:test10
curl -XPUT 'http://192.168.121.128:9200/test10'
- 查看索引库 test10 的 setting 和 mapping 信息。通过结果可以看出来 test10 这个索引库使用到了第二个索引库模板。
curl -XGET 'http://192.168.121.128:9200/test10/_settings?pretty' curl -XGET 'http://192.168.121.128:9200/test10/_mapping?pretty'
(2)接下来创建一个索引库,索引库名称为:hello
curl -XPUT 'http://192.168.121.128:9200/hello'
- 查看索引库 hello 的 setting 和 mapping 信息。通过结果可以看出来 hello 这个索引库使用到了第一个索引库模板。
curl -XGET 'http://192.168.121.128:9200/hello/_settings?pretty' curl -XGET 'http://192.168.121.128:9200/hello/_mapping?pretty'
3,查看模板
(1)后期想要查看索引库模板内容可以这样查看:
curl -XGET 'http://192.168.121.128:9200/_template/t_*?pretty'
(2)返回结果如下:

4,删除模板
想要删除索引库模板可以这样做,比如下面命令删除 t_2 模板。
curl -XDELETE 'http://192.168.121.128:9200/_template/t_2'
全部评论(0)