IndexTemplate
什么是IndexTemplate
索引模板,帮助你设定Mappings和Settings,并按照一定的规则,自动匹配到新创建的索引之上
- 模板仅在一个索引被新建的时候,才会产生应用,索引被修改不会影响已创建的索引
- 可以设定多个模板,最终这些设定会merge在一起,merge时会根据order属性的值来进行合并,数值越小,排列越靠前(越先生效,先生效的会被覆盖)
- 示例说明:
- IndexTemplate的优先级(后执行的模板会覆盖先执行的模板属性)
- 使用Elsaticsearch中默认的settings和mappings
- order数值低的IndexTemplate
- order数值高的IndexTemplate
- 用户创建索引时自定义的Settings和Mappings
DynamicTemplate
什么是DynamicTemplate
- 根据Elasticsearch识别的数据类型,结合字段名称,来动态设定字段类型
- 所有的字符串类型都设定为keyword或者关闭keyword字段
- is开头的都设定为boolean
…
DynamicTemplate定义
- 定义在某个索引的Mapping中
- Template必须有一个名称
- 匹配规则是数组
- 为匹配到的字段设置mapping
PUT my_index
{"mappings": {"dynamic_templates": [{"strings_as_boolean": {"match_mapping_type": "string","match": "is*","mapping": {"type": "boolean"}}},{"strings_as_keywords": {"match_mapping_type": "string","mapping": {"type": "keyword"}}}]}
}