索引模板

模板的主要作用:可以帮助简化创建索引的语句,将模板中的配置和映射应用到创建的索引中。

新建索引时,索引名称满足index_patterns条件的,将会使用索引模板中的配置和映射。index_patterns使用*进行通配,不支持复杂的正则。

indexPattern要求:

  • 不能包含空字符

  • 不能以_开头

  • 不能包含以下特殊字符

    \ / ? " < > | , #
    

如果索引匹配了多个索引模板,将通过order,按升序逐个应用和覆盖相同的配置和映射,order默认值为0,如果多个模板的order一致,则模板应用顺序不可控。

模板的管理

创建&修改模板

创建修改模板语法一样,把修改后的模板在PUT或者POST一下。修改时,模板内容是全量覆盖的。

新建索引模板gudong_1

PUT _template/gudong_1
{
  "index_patterns": ["gudong*"],
  "order" : 0,
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "_doc": {
      "properties": {
        "message": {
          "type": "keyword"
        },
        /* 数据插入的时间 */
        "create_date": {
          "type": "date",
          "format": "yyyy-MM-dd HH:mm:ss"
        }
      }
    }
  }
}

创建索引gudong20211221001

PUT gudong20211221001

查询索引结果

{
    "gudong20211221001": {
        "aliases": {},
        "mappings": {
            "_doc": {
                "properties": {
                    "create_date": {
                        "type": "date",
                        "format": "yyyy-MM-dd HH:mm:ss"
                    },
                    "message": {
                        "type": "keyword"
                    }
                }
            }
        },
        "settings": {
            "index": {
                "creation_date": "1640054016128",
                "number_of_shards": "1",
                "number_of_replicas": "1",
                "uuid": "TnVhs-7sQ3Wg-BuqSJUEmQ",
                "version": {
                    "created": "6070299"
                },
                "provided_name": "gudong20211221001"
            }
        }
    }
}

多模板应用

新建索引模板gudong_2

PUT _template/gudong_2
{
  "index_patterns": ["gudong*"],
  "order" : 2,
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "_doc": {
      "properties": {
        "content": {
          "type": "keyword"
        }
      }
    }
  }
}

创建索引gudong20211221002

PUT gudong20211221002

查询索引结果,可以发现同时应用了模板gudong_1和gudong_2

{
    "gudong20211221002": {
        "aliases": {},
        "mappings": {
            "_doc": {
                "properties": {
                    "content": {
                        "type": "keyword"
                    },
                    "create_date": {
                        "type": "date",
                        "format": "yyyy-MM-dd HH:mm:ss"
                    },
                    "message": {
                        "type": "keyword"
                    }
                }
            }
        },
        "settings": {
            "index": {
                "creation_date": "1640054892925",
                "number_of_shards": "1",
                "number_of_replicas": "1",
                "uuid": "Ew8LYOJmRFWMFGs4doZ_Pg",
                "version": {
                    "created": "6070299"
                },
                "provided_name": "gudong20211221002"
            }
        }
    }
}

查询模板

查询所有的模板列表

GET _cat/templates?v&s=name

验证模板是否存在,通过HTTP状态码来判断, 200 表示存在,404 表示不存在。

HEAD _template/gudong_1

查询模板详细内容

GET _template/gudong_1,gudong_2

查询所有模板的详细内容

GET /_template

通配符查询

GET /_template/gudong_*

删除模板

单个模板删除

DELETE /_template/template_1

通配符删除

DELETE /_template/gudong_*

不支持多个模板名以逗号隔开的方式进行删除,不支持DELETE /_template/template_1,template_2

版本化模板

模板可以选择添加一个版本号,它可以是任何整数值,以简化外部系统对模板的管理。 version 字段是完全可选的,它仅用于模板的外部管理。 要取消设置版本,只需替换模板而不指定模板。

PUT /_template/template_1
{
    "index_patterns" : ["*"],
    "order" : 0,
    "settings" : {
        "number_of_shards" : 1
    },
    "version": 123
}

直接查询版本

GET /_template/template_1?filter_path=*.version
{
  "template_1" : {
    "version" : 123
  }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐