ES之API系列--index template(索引模板)的用法(有实例)
创始人
2024-11-10 10:11:55
0

原文网址:ES之API系列--index template(索引模板)的用法(有实例)_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍ElasticSearch的index template(索引模板)的用法(有实例)。

官网网址

https://www.elastic.co/guide/en/elasticsearch/reference/8.0/index-templates.html

索引模板的作用

作用概述

        在新建索引时,如果索引名字与索引模板的通配符匹配,那么就使用索引模板的设置(_setting、_mapping等)。

  • 模板仅在索引创建时才会生效,而且修改模板不会影响现有的索引。
  • 可以指定"priority"的数值,如果新建的索引匹配到了多个模板,则使用priority最高的那个(priority值最小)。
    • 7.8之前的版本是"order"字段。会对匹配到的多个模板进行合并,如果一个字段在多个模板中,则取order比较小(优先级高)的那个。

应用场景

  1. 为将来的动态映射的索引进行限制
    1. 例如:有多个系统写入日志索引,每天生成一个新索引,采用动态映射的方式。原先系统的时间是yyyy-MM-dd HH:mm:ss,创建索引后动态映射的日期格式为:“"format":"strict_date_optional_time||epoch_millis||yyyy-MM-dd HH:mm:ss"”,新系统以yyyy-MM-dd HH:mm:ss.SSS格式写进去时会报错。
    2. 解决方案:直接将该日期字段改为:"format": "strict_date_optional_time||epoch_millis||yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss.SSS"。创建索引时会支持新格式。
  2. 为创建索引提供便利
    1. 例如:可以在模板设置好number_of_shards,number_of_replicas,创建索引时就自动使用模板的配置,不需要再设置了。

版本的区别

7.8之后的命令是:_index_template

7.8之前的命令是:_template

用法完全一样。本文介绍7.8及之后的命令。

创建与更新索引模板

创建和更新的命令是一样的。如果不存在则创建,如果存在则更新。

简洁方法(_index_template)

PUT _index_template/template1 {   "index_patterns": ["te*", "bar*"],   "template": {     "settings": {       "number_of_shards": 1     },     "mappings": {       "_source": {         "enabled": false       },       "properties": {         "host_name": {           "type": "keyword"         },         "created_at": {           "type": "date",           "format": "yyyy-MM-dd HH:mm:ss.SSS"         }       }     },     "aliases": {       "mydata": { }     }   },   "priority": 10,   "version": 3,   "_meta": {     "description": "my custom"   } }

上边这个模板设置了index_patterns 为 te* 和bar*意思就是:te或bar开头的索引在创建时都会使用这个模板。

复杂方法(_index_template+_component_template)

PUT _component_template/component_template1 {   "template": {     "mappings": {       "properties": {         "@timestamp": {           "type": "date"         }       }     }   } }  PUT _component_template/other_component_template {   "template": {     "mappings": {       "properties": {         "ip_address": {           "type": "ip"         }       }     }   } }  PUT _index_template/template_1 {   "index_patterns": ["te*", "bar*"],   "template": {     "settings": {       "number_of_shards": 1     },     "mappings": {       "_source": {         "enabled": false       },       "properties": {         "host_name": {           "type": "keyword"         },         "created_at": {           "type": "date",           "format": "yyyy-MM-dd HH:mm:ss.SSS"         }       }     },     "aliases": {       "mydata": { }     }   },   "priority": 10,   "composed_of": ["component_template1", "other_component_template"],   "version": 3,   "_meta": {     "description": "my custom"   } } 

index_template 创建时,如果它包含的 component_template与component_template 或 component_template与index_template 中properties存在重复的属性,则index_template创建会报错。

查看索引模板

查看所有索引模板

GET _index_template

示例 

查看单个索引模板

GET _index_template/template_name

示例

查看多个索引模板(通配符)

GET _index_template/template_pattern

示例

查看组件模板

GET _component_template/component_template_name

删除索引模板

删除索引模板

DELETE _index_template/template_name

删除组件模板

DELETE _component_template/component_template_name

日期检测与数字检测

概述

        如果某个字段没有设置映射,那么在新建文档时,会自动根据字段来生成映射,比如:日期和数字。

示例

  • 如果日期字段符合“yyyy-MM-dd HH:mm:ss.SSS"格式,就自动将该字段的type设置为date类型,并且format会包含“yyyy-MM-dd HH:mm:ss.SSS”这种格式。
  • 如果字段是个数字,则自动将该字段的type设置为Long之类的类型。

配置方法

默认这种类型检测是开启的,配置方法如下:

PUT _index_template/template_name {     "index_patterns": ["test*"],     "priority": 1,     "settings": {         "number_of_shards": 1,         "number_of_replicas": 2     },     "mappings": {         "date_detection": false,         "numeric_detection": true     } } 

相关内容

热门资讯

第二分钟辅助!jj斗地主有透视... 第二分钟辅助!jj斗地主有透视吗,总是真的是有辅助脚本(有挂细节)1、让任何用户在无需jj斗地主有透...
第三方辅助挂!hhpoker有... 第三方辅助挂!hhpoker有作弊的吗,hhpoker脚本,攻略教程(了解有挂)1、上手简单,内置详...
2分钟辅助!yy软件辅助,原来... 2分钟辅助!yy软件辅助,原来是真的有辅助技巧(有挂秘笈)1、用户打开应用后不用登录就可以直接使用,...
连日来!wepoker代打辅助... 连日来!wepoker代打辅助,拱趴大菠萝怎么开挂,手段教程(有挂秘籍)拱趴大菠萝怎么开挂破解侠是真...
第6分钟辅助!新玄龙小程序辅助... 第6分钟辅助!新玄龙小程序辅助,其实是真的有辅助挂(真的有挂)1、游戏颠覆性的策略玩法,独创攻略技巧...
连日来!大菠萝免费辅助器,po... 连日来!大菠萝免费辅助器,pokerworld修改器,手册教程(有挂讲解)1、大菠萝免费辅助器破解器...
第6分钟辅助!玉兔追月有挂吗,... 您好,玉兔追月有挂吗这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家...
教程辅助挂!wpk作弊最怕三个... 教程辅助挂!wpk作弊最怕三个东西,wepoker怎么下载游戏,手筋教程(果真有挂)教程辅助挂!wp...
第八分钟辅助!嗨动互动辅助,确... 第八分钟辅助!嗨动互动辅助,确实是真的有辅助挂(竟然有挂)1、操作简单,无需嗨动互动辅助手机版透视脚...
截至目前!约局吧德州可以透视吗... 截至目前!约局吧德州可以透视吗,佛手在线有挂吗,阶段教程(有挂教学)1、每一步都需要思考,不同水平的...