Elasticsearch索引的基本操作(7)-索引模板

ES 10 - 如何使用Elasticsearch的索引模板(index template) 索引模板: 就是把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板, 在创建新索引时, 指定要使用的模板名, 就可以直接重用已经定义好的模板中的设置和映射. 阅读详情

1、说明

创建索引模板使用PUT方法,索引模板用于定义在创建新的索引时自动应用的模板,可以创建普通索引模板,也可以创建别名索引模板等,索引模板中的信息主要包括以下部份:

  • 可套用该索引模板的索引名称格式,名称支持通配符,也可以配置多个名称格式匹配格式;
  • 索引的基本设置(settings);
  • 索引的字段映射(mapping)信息;
  • 别名(alias);
  • ...

模板创建语句语法如下所示:

PUT _template/my_template

{

  "index_patterns": ...,

  "settings": {

...  

},

  "mappings": {

    ...

  }

}

 

注意事项

  • 索引套用模板是在索引的创建阶段,后续模板的修改都不会对已经存在的索引产生影响了,对索引本身的修改也不会对模板产生影响;
  • 如果在创建索引的时候指定了设置或(和)字段映射信息,则指定的设置或(和)字段映射信息则会优先于模板应用到被创建的索引上;
  • 创建的索引如果符合多个索引模板的定义,则会应用多个索引模板的定义,不过此时为了避免混淆,需要为模板设定一个优先级;

2、模板创建示例

普通索引模板

普通索引模板通常用于定义索引中字段的映射、用到的配置的预定义等,以下示例为“logs_”和“others_”开头的索引创建模板,操作如下:

PUT _template/logs_and_others_template

{

  /*索引的名称支持通配符*/

  "index_patterns": ["logs_*", "others_*"],

  "settings": {

    /*主分片的数量*/

    "number_of_shards": 1,

    "number_of_replicas":0

  },

  "mappings": {

    "_source": { "enabled": false },

    "properties": {

      "user_name": { "type": "keyword" },

      "created": { "type": "date" }

    }

  }

}

定义模板的时候,支持使用C语言格式的注释/**/,JSON内容内部任何地方都可以使用注释,这个示例展示了两个注释示例。

​​​​​​​别名索引模板

别名索引模板通常用于给索引定义一些索引别名、过滤器别名或路由别名等,自动创建一些索引“视图”,方便后续使用,操作如下:

PUT _template/logs_and_others_alias_template

{

  "index_patterns": ["logs_*", "others_*"],

  "settings": {

    "number_of_shards": 1,

    "number_of_replicas": 0

  },

  "aliases": {

    /*定义别名*/

    "{index}-alias": {},

    "alias_tomcat_filter": {

      "filter": { "term": { "user_name": "tomcat" } },

      "routing": "tomcat"

    }

  }

}

注:该别名模板中使用了{index}占位符变量,创建索引时,{index}会被替换为真实的索引名称,以达到模板中定义别名的唯一性。

​​​​​​​3、查看模板

查看模板的定义,使用GET方法,操作如下:

GET /_template/logs_and_others_alias_template

上面的语句是查看索引模板logs_and_others_alias_template的定义,如果希望查看其中某一部份的定义,如settings,可以使用以下语句:

GET /_template/logs_and_others_alias_template?filter_path=*.settings

4、​​​​​​​修改模板

模板的修改和模板的创建是一样的操作流程,只需要把修改后的模板,按照创建模板的操作,重新执行一下模板内容即可,此时就不在举例了。

​​​​​​​5、多模板匹配

如果创建的索引,同时匹配了多个索引模板,则会同时使用多个索引模板中的定义。如前面创建的索引模板logs_and_others_template和logs_and_others_alias_template,都会匹配"logs_*"和"others_*"开头的索引,其中logs_and_others_template中定义了字段的映射,logs_and_others_alias_template中定义了索引别名。

创建新的索引logs_1,操作如下:

PUT /logs_1

再查看该索引的相关信息:

GET /logs_1

响应:

{

  "logs_1" : {

    "aliases" : {

      "alias_tomcat_filter" : {

        "filter" : { "term" : { "user_name" : "tomcat" } },

        "index_routing" : "tomcat",

        "search_routing" : "tomcat"

      },

      "logs_1-alias" : { }

    },

    "mappings" : {

      "_source" : { "enabled" : false },

      "properties" : {

        "created" : { "type" : "date" },

        "user_name" : { "type" : "keyword" }

      }

    },

    ...

}

可以看到该索引中包括了前面两个索引模板中定义的别名和字段映射的内容。

前面的示例中,两个索引模板中没有定义不一样的内容,定义的都是互为补充的内容,不会让人理解上产生歧义。但是假设一个索引模板中定义的副本数为1,另一个索引模板中定义的副本数为2,存在类似这样的定义冲突,那么在建立索引的时候,就不容易确认确认索引建立出来的最终定义。

针对定义冲突的情况,可以通过以下两种方式解决:

  • 在索引模板中指定order属性,其值为数字,该值越大表示该模板中的定义被使用的可能性越高,如同时两个模板中都定义了副本数,order属性为0的模板定义的副本数为1,,order属性为1的模板定义的副本数为2,此时匹配了这两个模板的索引,将会使用副本数为2的值;
  • 通过创建索引的时候,在创建语句中指定需要的配置或字段映射,此优先级是最高的。

增加order属性的示例:

PUT /_template/template_1

{

    "index_patterns" : ["*"],

    "order" : 0,

    ...

}

 

Elasticsearch | ES索引模板、索引和索引别名的创建与管理 通过本文的介绍,我们了解了如何在 Elasticsearch 和 Kibana 中创建索引模板、索引和索引别名。通过 RESTful API 和 Kibana Dev Tools,我们可以灵活地管理索引结构和别名,从而提高数据管理和查询的效率。 阅读详情

相关推荐

Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板

本章,我们将简单介绍索引模板和动态模板的内容。其实,在前面章节,我们已经粗略地用到了动态模板,但是没有明确提出这样的概念。 索引模板Index Template 索引模板,英文名为Index Template。它是一种机制,这种机制允许我们定义一种模板,这种模板当新索引创建时将被自动应用。模板包含settings和mapping,以及这个模板是否可被应用于新的索引。 索引模板有以下限制: ...

qq_36697880的博客 4485

Elasticsearch索引模板

在上面的配置中,index_patterns用于设置索引模板可以匹配的索引名称,这里使用*号通配符,表示所有以order开头的索引都会使用上面的模板。如果你想在es中创建两个索引order1和order2,这两个索引分别记录了不同业务类型的订单信息,他们的映射结构、分片数、别名都相同。当需要为同一类索引应用相同的配置、映射、别名时,如果每次创建索引都逐一配置会比较麻烦。索引模板的出现正是为了简化这种操作,使用索引模板你可以方便地为某一类索引自动配置某些共同的参数。

qq_33192811的博客 5154

【Elasticsearch】Elasticsearch 索引 模板 template

1.概述 索引模板,简而言之,是一种复用机制,就像一些项目的开发框架如 Laravel 一样,省去了大量的重复,体力劳动。当新建一个 Elasticsearch 索引时,自动匹配模板,完成索引的基础部分搭建。 当索引类型和配置信息都一样,就可以使用索引模板来处理,不然我们就会手动创建索引。 2.创建索引模板 2.1 es 6 创建索引模板 PUT /_template/2019 { "index_patterns": ["20*", "product1*"], "settings":{

九师兄 1628

ElasticSearch索引模板(Index Template)

注: 部分概念介绍来源于网络 1、什么是索引模板 索引模板: 就是把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板, 在创建新索引时, 指定要使用的模板名, 就可以直接重用已经定义好的模板中的设置和映射。 1.1、索引模板的用途 索引模板一般用在时间序列相关的索引中,也就是说, 如果你需要每间隔一定的时间就建立一次索引, 你只需要配置好索引模板, 以后就可以直接使用这个模板中的设置, 不用每次都设置settings和mappings. 索引模板一般与索引别名

jsugs的博客 6101

股票分时数据获取-东方财富

获取下股票分时数据,分时均价下线,分时成交额等,用于量化t0交易条件还是很不错了的。

meiaoxue1234的博客 1万+

eLabRadio软件无线电虚实结合仿真开发平台简介

在使用仿真平台时,不要关闭设备或断开设备与PC机之间的网络连接,否则,仿真平台将无法正常工作。注:采用eNodeX设备认证方式,当出现“设备不存在”的报错时,请检查计算机IP是否和硬件设备IP处于同一网段,或者是否是先连接好网线,再开启硬件设备的。①此登录方式下,需要先建立软件与硬件的通信:在登录窗口点击【网络配置】,参照下图输入设备IP,服务器地址无需设置,设置完成后点击确认,此时登录界面无需设置账号密码;,拷贝到电脑上,使用管理员权限运行setup.exe,下一步直到安装完成,桌面会生成快捷方式。

weixin_55349105的博客 6317

ElasticSearch索引模板(template)操作:创建、查询、修改、删除

官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/indices-templates.html 一:概述 可以按下面几种方式理解索引模板: 避免每次在创建索引库的时候,都需要手工指定每个索引库的配置信息;索引可以使用索引模板(index template)进行创建,在新建索引时需要进行模板设置包括settings和mappings,通过模式匹配可使多个索引重复使用一个模板。 将已经创建好的某个索引的参数设置(sett

учёба 1万+

Intel Realsense d435 使用python对深度图进行预处理

Intel Realsense d435 使用python对深度图进行预处理 本文中主要翻译一下一篇关于深度图预处理过滤器的内容,后面还会有关于距离测量的。 原文中的图像显示,是使用matplotlib.pyplot工具,在本文中,使用opencv来显示深度图》 首先常规操作导入包: import cv2 import numpy as np import pyrealsense2 as rs 获取我们所需要的图像,通过摄像头或者本地都可以 pipe = rs.pipeline() cfg = rs.co

qq_25105061的博客 1万+

干货 | Elasticsearch基础但非常有用的功能之二:模板

1、 引言业务场景1:数据量非常大,需要进行索引生命周期管理,按日期划分索引,要求多个索引的Mapping一致,每次手动创建或者脚本创建都很麻烦! 怎么破?业务场景2:实际业务多个索引,想让多个索引中的相同名字的字段类型完全一致,以便实现跨索引检索。怎么破?思考上面两个问题,当单Mapping不能解决多索引问题时,模板的作用就体现出来了。下文中:模板=template,映射=Mapping。2、E...

铭毅天下Elasticsearch 7392

谷粒商城学习笔记-15-数据库初始化

这一节的主要内容是把创建对应的数据库和数据库表。

epitomizelu的专栏 1438

在Ubuntu 22.04上从零搭建TrinityCore 3.3.5服务器:一份保姆级避坑指南

本文详细介绍了在Ubuntu 22.04系统上从零搭建TrinityCore 3.3.5服务器的完整流程,包括环境准备、源码编译、数据库配置、资源文件处理及性能调优等关键步骤。特别针对国内开发者和低配置用户优化,提供保姆级避坑指南,帮助用户高效搭建魔兽世界经典旧世版本私服。

weixin_33393017的博客 304

【Elasticsearch】Elasticsearch索引创建与管理详解

Elasticsearch 是一个基于 Apache Lucene 的开源搜索引擎,具有分布式、近实时、RESTful API 等特点。索引是 Elasticsearch 的核心概念之一,索引的创建和管理是使用 Elasticsearch 的基础技能。本文将详细介绍 Elasticsearch 索引的创建与管理,包括索引的基础概念、创建索引、索引模板、映射和索引别名等内容。

屿小夏.的知识博客 7万+

Aruba CX交换机 初始化配置

Aruba CX 交换机 6000系列 8000系列交换机配置

Harry_Guo 1834

Elasticsearch 索引模板

概述 记录自己在工作中将生产的数据按月保存在ES中(通过logstash采集kafka数据到ES),由于生产环境数据量比较庞大(一天的日志量大概在2500万条左右),为了后期减轻服务器压力,方便我们维护,所以需要对我们的日志进行处理,按月建立不同的ES索引库,能够查询最近6个月的日志,关闭前6个月不用的日志。 创建模板 如果用户每次新建一个索引的时候都需要手动创建mapping非常麻烦,es...

bankq的博客 8131

海外支付实战:虚拟信用卡订阅ChatGPT Plus等服务的完整指南

在跨境数字服务消费中,支付环节常因地区限制、银行风控等因素受阻。其核心原理在于国际信用卡交易需通过发卡行风控系统,而国内银行对高频、小额或商户名非常规的境外线上交易敏感,导致成功率不稳定。为解决这一痛点,虚拟信用卡技术应运而生,它通过服务商生成关联预充值账户的虚拟卡号,提供地域灵活性与资金可控性,显著提升了支付通过率。这项技术的价值在于以较低学习成本,为个人用户打通了访问ChatGPT Plus、Midjourney、Claude Pro等前沿AI服务的支付通道。其典型应用场景包括订阅各类海外SaaS、内容

weixin_42531579的博客 1018

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

摘要:YOLOv4在目标检测领域实现了精度与速度的平衡,通过CSPDarknet53骨干网络、SPP+PANet特征融合及CIoU损失函数等创新,在MS COCO数据集达到65.7% AP50,V100显卡实现62FPS实时检测。核心优化包括Mosaic数据增强、自对抗训练和解耦头结构,显著提升小目标检测和遮挡场景鲁棒性。代码实现采用CSP模块和SPP多尺度池化,兼顾计算效率与检测性能,为工业落地提供高效解决方案。(149字)

一碗白开水一 1357

【Elasticsearch索引】索引模板和索引别名

当指定时,针对指向多个索引的别名的所有索引和更新请求将尝试解析为一个索引,即写索引。如果没有指定写索引,并且别名引用了多个索引,那么就不允许写。没有显式地为索引设置is_write_index: true且只引用一个索引的别名,将使所引用的索引表现为写索引,直到引用了另一个索引为止。场景1:数据量非常大,需要进行索引生命周期管理,按日期划分索引,要求多个索引的Mapping一致,每次手动创建或者脚本创建都很麻烦。场景2:实际业务多个索引,想让多个索引中的相同名字的字段类型完全一致,以便实现跨索引检索。

qq_44849679的博客 3543

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Elasticsearch 7.15索引模板介绍

Elasticsearch 7.15 的索引模板机制,特别是可组合模板架构,为索引管理提供了强大而灵活的工具集。通过合理运用模板优先级、组件模板复用、别名策略等功能,可以构建高度自动化、易维护的索引架构。在实际应用中,建议结合业务需求设计清晰的模板策略,建立模板版本管理规范,并充分利用模拟API验证配置效果。当模板与 ILM、别名等功能协同工作时,能够为时序数据管理等场景提供完整的解决方案。

TanYYF的专栏 1132

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Elasticsearch 中的索引模板:如何使用可组合模板

一个索引包含映射、设置和别名:映射定义字段的架构,设置设置索引参数,如分片数和副本数,别名为索引提供备用名称。模板允许我们创建具有预定义配置的索引。将索引命名为与特定模板中定义的索引模式匹配的名称时,该索引会根据模板自动配置。Elasticsearch 在 7.8 版本中引入了可组合索引模板。可组合索引模板允许模板的模块化和版本管理。可组合模板由一个或多个组件模板组成。索引模板也可以定义自己的配置。组件模板是一个具有预定义配置的可重用模板,就像一个可组合索引模板。

Elastic 中国社区官方博客 2137

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Django之Haystack对接搜索引擎框架Elasticsearch

Haystack是在Django中对接搜索引擎的框架,搭建用户和搜索引擎之间的沟通桥梁。它提供了一种简化的方式来集成不同的搜索引擎,如Elasticsearch、Whoosh、Solr等。

积跬步,至千里。 1774

ES 07 - 如何使用Elasticsearch的索引模板(index template)

博客转载 方面自己查看 目录 1 什么是索引模板 1.1 索引模板中的内容 1.2 索引模板的用途 2 创建索引模板 3 查看索引模板 4 删除索引模板 5 模板的使用建议 5.1 一个index中不能有多个type 5.2 设置_source = false 5.3 设置_all = false 5.4 设置dynamic = strict 5.5 使用keyword类型 参考资料 1 什么是索引模板 索引模板: 就是把已经创建好的某个索引的参数设置(setting.

xiangjai的专栏 3892

【Elasticsearch】中数据流需要配置索引模板吗?

是的,数据流需要配置索引模板。在Elasticsearch中,数据流(Data Streams)是一种用于处理时间序列数据的高级结构,它背后由多个隐藏的索引组成,这些索引被称为后备索引(Backing Indices)。索引模板(Index Templates)用于定义这些后备索引的结构和设置。

risc123456的博客 1789

ElasticSearch 索引模板 组件模板 组合模板详细使用介绍

定义在创建新 index 时可以自动应用的settings和mappings。Elasticsearch 根据与 index 名称匹配的 index 模式将模板应用于新索引。这个对于我们想创建的一系列的 Index 具有同样的 settings 及 mappings。比如我们希望每一天/月的日志的index都具有同样的设置。Index template 仅在 index 创建期间应用。对 index template 的更改不会影响现有索引。请求中指定的设置和映射会覆盖索引模板中指定的任何设置或映射。

jast 1984

Elasticsearch搜索引擎使用

搜索引擎elasticsearch使用了解

weixin_44115365的博客 1064

《ElasticSearch》04 索引:索引模板(Index Template)详解

Elasticsearch索引模板是一种预定义配置,用于在创建新索引时自动应用设置、映射和别名。

断剑重铸之日 骑士归来之时 1155

Elasticsearch 搜索引擎开发实战

内容简介 本书结合 Elasticsearch 在工程中的实际应用,详细介绍了使用 Elasticsearch 开发支持中文和英文搜索引擎的相关技术,从而实现系统监控。 本书共分为8章,内容涵盖了 Elasticsearch 搜索引擎开发的环境安装与配置;实现一个简单的网站搜索;开发中文搜索引擎;Mapping 详解;源代码分析;提高搜索相关性;使用 Spring Boot 开发搜索界面;使用 E...

GitChat 8135
上一篇: Elasticsearch索引的基本操作(6)-索引设置
下一篇: Elasticsearch索引的基本操作(8)-索引缓存、refresh、flush等操作
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值