0%

Elasticsearch索引模板

索引模板就是把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板,在创建新索引时指定要使用的模板名就可以直接重用已经定义好的模板中的设置和映射。

一、基础

      索引模板是预先定义好的在创建新索引时自动应用的模板,主要包括索引设置、映射和模板优先级等配置。通俗地说,索引模板就是把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板,在创建新索引时指定要使用的模板名就可以直接重用已经定义好的模板中的设置和映射。

  • settings:指定index的配置信息,比如分片数、副本数、tranlog同步条件、refresh策略等信息;
  • mappings:指定index的内部构建信息,主要有:
    • _all:All Field字段,如果开启,_all字段就会把所有字段的内容都包含进来,检索的时候可以不用指定字段查询,设置方式: "_all": {"enabled": true};
    • _source:Source Field字段,ES为每个文档都保存一份源数据,如果不开启("_source": {"enabled": false}),查询的时候就只会返回文档的ID,文档其他内容需要通过Fields字段到索引中再次获取,效率很低。但若开启索引的体积会更大,此时就可以通过Compress进行压缩,并通过inclueds、excludes等方式在field上进行限制。
    • properties:最重要的配置,是对索引结构和文档字段的设置。

二、使用(7.4.0)

  1. 创建索引模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
curl -X PUT "localhost:9200/_template/template_1" -H "content-type:application/json" -d'{
"index_patterns": ["te*", "bar*"],
"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"
}
}
}
}'

curl -X PUT "localhost:9200/_template/template_2" -H "content-type:application/json" -d'{
"index_patterns" : ["*"],
"order" : 0,
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"_source" : { "enabled" : false }
}
}'

curl -X PUT "localhost:9200/_template/template_3" -H "content-type:application/json" -d'{
"index_patterns" : ["te*"],
"order" : 1,
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"_source" : { "enabled" : true }
}
}'
  1. 查看索引模板curl -XGET "localhost:9200/_cat/templates?v"

    • curl -XGET "localhost:9200/_cat/templates/template_1?v"
    • curl -XGET "localhost:9200/_cat/templates/temp*?v"
    • curl -XGET "localhost:9200/_template/temp*?pretty"
    • curl -XGET "localhost:9200/_template?pretty"
  2. 删除索引模板curl -XDELETE "localhost:9200/_template/template_1""

  3. 模板是否存在curl --head http://localhost:9200/_template/template_1

三、参考

  1. 参考一
  2. 参考二
  3. 参考三
  4. 参考四
  5. 参考五