Elasticsearch浅析:动态映射和索引模版
索引文档时,如索引不存在,Elasticsearch的动态映射机制会根据文档内容和索引模版自动创建索引。
1 动态映射
_mapping接口可查看索引的映射关系。
# 创建索引,指定映射
PUT students
{"mappings": {"properties": {"age_range":{"type": "integer"}}}
}
# 查看索引的映射关系
GET students/_mapping
# 索引添加属性
PUT students/_mapping
{"properties": {"age":{"type": "short"}}
}
2 动态模板
动态模板定义了索引创建后新添加字段的映射规则。
3 索引模板
索引模版定义了在创建索引时默认为索引添加的别名、配置和映射等信息。
索引模板有以下限制:
- 索引模板仅在一个索引新创建时才起作用,修改模板不会影响已创建的索引。
- 可以设定多个索引模板,这些索引模板的设置将被
merge在一起。 - 可以通过对索引模板指定
order的数值,来控制merge的过程。
通过_template接口配置。
# 创建索引模版
PUT _template/test
{"index_patterns": ["test_*"],"order" : 0,"version": 1,"settings": {"number_of_shards": 1,"number_of_replicas":1}
}
index_patterns:索引范围
order:模板优先级,数字越大,优先级越高
# 查看所有索引模板
GET _cat/templates
# 查看某个索引模板具体信息
GET _template/test