Index Template

    • 概念:帮你设定Mappings和Settings,并按照一定的规则,自动匹配到新建的索引上
      • 模板仅在一个索引被新创建时,才会产生作用。修改模板不会影响已创建的索引
      • 可以设定多个索引模板。这些设置会被“merge”在一起
      • 可以指定“order”的数值,控制“merge的过程”
      • 创建Index Template

    PUT _template/template_test{ "index_patterns": ["test*"], "order": 1, "settings": { "number_of_shards": 2, "number_of_replicas": 1 }, "mappings": { "date_detection": false, "numeric_detection": true }}

    • 查看

    Get _template/template*

    • 工作方式

    当一个索引被新创建时:

    • 应用Elasticsearch默认的settings和mappings
    • 应用order数值低的Index Template中的设定
    • 应用order高的Index Template中的设定,之前的设定会被覆盖
    • 应用创建索引时,用户所指定的settings和mappings,覆盖模板中的设定

    Dynamic Template

    • 可以根据Elasticsearch识别得到数据类型,结合字段名称,来动态设定字段类型

    PUT test_index{
    "mappings": {
    "dynamic_templates": [ {
    "str_as_bool":{
    "path_match": "is*", 匹配is开头的字段
    "match_mapping_type": "string", 匹配string类型的字段
    "mapping": { "type": "boolean" }
    } } ] }}