Index Template
PUT _template/template_default
{
"index_patterns" : ["*"],
"order" : 0,
"version" : 1,
"setttings" : {
"number_of_shards" : 1,
"number_of_replicas": 1
}
}PUT /_template/template_test
{
"index_patterns" : ["test*"],
"order": 1,
"settings" : {
"number_of_shards": 1,
"number_of_replicas": 2
},
"mappings" : {
"date_detection": false,
"numberic_detection": true
}
}在创建一个索引的时候,就会参考模板。
- 应用ES默认的setting的mappings。
- 应用order低的index template中的设定。
- 应用order高的index template中的设定。之前的会被覆盖
- 应用用户指定的setting和mapping,覆盖之前的设定。
Dynamic Template
是设置在一个具体的索引上的,根据ES识别的数据类型,结合字段名称,来动态设定字段类型。
例如:
PUT test_index
{
"mappings" : {
"dynamic_templates": [
{
"full_name": {
"path_match": "name.*",
"path_unmatch" : "*.middle",
"mapping": {
"type" : "text",
"copy_to": "full_name"
}
}
}
]
}
}如果插入一条数据,上面的模板会将name字段下的除了middle结尾的字段以text类型拷贝到full_name字段中。
这样可能很容易通过一定字段的命名来自动化一些操作。
tags: ElasticSearch