索引模板
官网传送门
参考:
https://www.cnblogs.com/shoufeng/p/10641560.html
https://elasticsearch.cn/article/335
1. 简介
索引可使用预定义的模板进行创建,这个模板叫做Index templates。包括settings和mappings,通过匹配方便多个索引使用一个模板。
- settings: 指定index的配置信息, 比如分片数、副本数等
- mappings:主要是一些说明信息,分为_all、_source、prpperties这三部分
_all: All Field字段, 如果开启, _all字段就会把所有字段的内容都包含进来,检索的时候可以不用指定字段查询 —— 会检索多个字段, 设置方式: “_all”: {“enabled”: true};
在ES 6.0开始, _all字段被禁用了, 作为替换, 可以通过copy_to自定义实现all字段的功能.
_source: Source Field字段, ES为每个文档都保存一份源数据, 如果不开启, 也就是"_source": {“enabled”: false}, 查询的时候就只会返回文档的ID, 其他的文档内容需要通过Fields字段到索引中再次获取, 效率很低. 但若开启, 索引的体积会更大, 此时就可以通过Compress进行压缩, 并通过inclueds、excludes等方式在field上进行限制 —— 指定义允许哪些字段存储到_source中, 哪些不存储;
properties: 最重要的配置, 是对索引结构和文档字段的设置.
- template: 匹配索引名,6.0版本以后使用index_patterns数组形式
- order: 模板级别,匹配到多个模板时值越大越优先,默认值是0
2. 创建模板
PUT _template/template_1
{
"template": "te*", ## 6.0版本以后使用"index_patterns": ["te*", "bar*"] 数组形式
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"doc": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
}
效果
{
"acknowledged": true
}
3.查询模板
- 查询单个模板
GET /_template/template_1
- 模糊匹配得到多个模板
GET /_template/te*
- 批量查询
GET /_template/template_1,template_2
- 查询所有模板
GET /_template
- 判断模板是否存在
HEAD _template/shop_tem
结果:
a) 如果存在, 响应结果是: 200 - OK
b) 如果不存在, 响应结果是: 404 - Not Found
4.删除模板
DELETE /_template/template_1
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本CSDN Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本CSDN elasticsearch系列中。开源项目,持续更新中,喜欢请 Star~