elasticsearch 索引模版

当需要为同一类索引应用相同的配置、映射、别名时,如果每次创建索引都逐一配置会有些麻烦。索引模板的出现正是为了简化这种操作,使用索引模板你可以方便地为某一类索引自动配置某些共同的参数

  1. 使用索引模版定制索引结构

假如你想在Elasticsearch中创建两个索引service-log1和service-log2,这两个索引分别记录了不同年份的服务日志数据,它们的映射结构是相同的,也具有相同的分片数和别名。为了实现这一效果,你可以先创建一个索引模板service-template。

PUT _index_template/service-template
{"index_patterns": ["service-log*"],"template": {"settings": {"number_of_shards": 5,"number_of_replicas": 1},"mappings": {"properties": {"serviceid": {"type": "keyword"},"content": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"created_at": {"type": "date","format": "yyyy-MM-dd HH:mm:ss"}}},"aliases": {"service-logs": {}}},"priority": 200,"version": 3,"_meta": {"description": "my custom"}
}

在上述的配置中,index_patterns用于设置索引模板可以匹配的索引名,这里配置了所有以service-log开头的索引都会“命中”此模板。该模板还配置了索引的分片数、副本分片数、字段映射和别名。priority用来设置模板的优先级,其值越大优先级越高。version表示版本号,_meta可以保存一些元数据。当模板service-template已经存在时,再次编辑模板配置并发送上述请求可以修改模板的内容。如果想查询索引模板的信息,可以使用以下代码。

GET /_index_template/service-template

当索引名称匹配索引模版中指定的模版pattern时就会自动加载索引模版中的数据, 如果想要覆盖就可以直接添加指定的配置到创建索引时的模板当中去

可以从上述代码运行结果中看到模板中的配置已经自动在service-log1中得到应用。如果你想在索引service-log2中自定义某些配置,可以在创建索引映射的时候指明,这样就能把模板的配置覆盖掉。

PUT service-log2
{"settings": {"number_of_shards": "3","number_of_replicas": "2"},"mappings": {"properties": {"level": {"type": "text"},"serviceid": {"type": "long"}}}
}

上述代码在索引service-log2中设置了分片数和每个主分片的副本分片数分别为3和2,添加了一个字段level,又把serviceid字段设置为long类型,运行上述代码后可以发现索引映射中的配置确实成功覆盖掉了索引模板中的配置。查看service-log2的映射结果如下。

{"service-log2" : {"aliases" : {"service-logs" : { }},"mappings" : {"properties" : {"content" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"created_at" : {"type" : "date","format" : "yyyy-MM-dd HH:mm:ss"},"level" : {"type" : "text"},"serviceid" : {"type" : "long"}}},"settings" : {"index" : {"creation_date" : "1601965153703","number_of_shards" : "3","number_of_replicas" : "2","uuid" : "0tEAWaSkS3Cqh3LioDJfbA","version" : {"created" : "7090199"},"provided_name" : "service-log2"}}}
}
  1. 使用模版组件简化模版配置

为了简化索引模板中的配置内容,你可以把常规的索引设置、映射等内容写成可复用的模板组件,然后在索引模板中引用这些组件,这样模板中的配置内容就会非常简洁,便于移植和管理。

先创建组件模版 comp1, 具有字段 content

PUT _component_template/comp1
{"template": {"mappings": {"properties": {"content": {"type": "text"}}}}
}

再创建一个组件模板comp2,它配置了别名loginfo,主分片数为3,每个主分片的副本分片数为2。

PUT _component_template/comp2
{"template": {"settings": {"number_of_shards": "3","number_of_replicas": "2"},"aliases": {"loginfo": {}}}
}

然后创建一个索引模板infotmp,把上述两个组件模板加载到索引模板中,索引模板会匹配所有名称以loginfo开头的索引。

PUT _index_template/infotmp
{"index_patterns": ["loginfo*"],"priority": 200,"composed_of": ["comp1", "comp2"]
}

可以创建一个索引loginfo1然后查看结果。

PUT loginfo1
GET loginfo1

从以下返回结果可以看出索引loginfo1已经获得了两个组件模板中配置的映射、别名和分片数。

{"loginfo1" : {"aliases" : {"loginfo" : { }},"mappings" : {"properties" : {"content" : {"type" : "text"}}},"settings" : {"index" : {"creation_date" : "1601967493187","number_of_shards" : "3","number_of_replicas" : "2","uuid" : "zbvp-P-SSAq7hXUGFLl1Aw","version" : {"created" : "7090199"},"provided_name" : "loginfo1"}}}
}

下一章节我们讲解索引的监控

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入Spring MVC的工作流程

深入Spring MVC的工作流程 在Spring MVC的面试问题中,常常被询问到的一个问题。Spring MVC的程序中,HTTP请求是如何从开始到结束被处理的。为了研究这个问题,我们将需要深入学习一下Spring MVC框架的核心过程和工作流程。 1. 启动请求生命周…

【UE5 C++】超详细虚幻C++零基础学习教程

B站免费教程,虚幻C零基础教学入门级视频,帮助大家学习虚幻C。 视频地址:【虚幻5】UE5C零基础全网全流程开发从入门到进阶教程合集(持续跟新中)_哔哩哔哩_bilibili 课程介绍视频如下 【虚幻5】UE5C零基础全网全流程开…

[python]基于LSTR车道线实时检测onnx部署

【框架地址】 https://github.com/liuruijin17/LSTR 【LSTR算法介绍】 LSTR车道线检测算法是一种用于识别和定位车道线的计算机视觉算法。它基于图像处理和机器学习的技术,通过对道路图像进行分析和处理,提取出车道线的位置和方向等信息。 LSTR车道线…

Qt之使用Qt内置图标

一效果 二.原理 Qt内置图标封装在QStyle中,共七十多个图标,可以直接拿来用,能应付不少简单程序需求,不用自己去找图标并添加到资源文件了。 下面是内置图标的枚举定义: enum StandardPixmap {SP_TitleBarMenuButton,SP_TitleBarMinButton,SP_TitleBarMaxButton,SP_T…

error: failed to push some refs to....

使用 git push 时报错: AdministratorUSER-20231229RG MINGW64 ~/Desktop/工作/gitCode/answer-questions (master) $ git push -u origin master Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Co…

PHP框架详解 - symfony框架

首先说一下为什么要写symfony框架,这个框架也属于PHP的一个框架,小编接触也是3年前,原因是小编接触Golang,发现symfony框架有PHP框架的东西也有Golang的东西,所以决定总结一下,有需要的同学可以参看小编的G…

【数据结构】链表OJ面试题(题库+解析)

前言 还不清楚链表的码喵们可以看看前篇关于链表的详解 http://t.csdnimg.cn/X6t6P 1.链表面试题 既然已经懂得了链表该如何实现,那么现在就趁热打铁开始练习!这里给码喵们整理了相对不错的一些OJ题来练习 1. 删除链表中等于给定值 val 的所有结点。 力…

【Lambda表达式和函数式接口】

目录 Lambda表达式和函数式接口的使用具有以下几个影响:下面是一个简单的示例代码,使用Lambda表达式实现一个对列表进行遍历的操作: 在Java 8及以上版本中,Lambda表达式是一种函数式编程的特性,它可以使代码更加简洁、…

【Tomcat与网络2】一文理解Servlet是怎么工作的

在前面,我们研究了如何用idea来启动一个Servlet程序,今天我们就再来看一下Servlet是如何工作的。 目录 1.Servlet 介绍 2.Servlet 容器工作过程 3.Servlet的扩展 不管是电脑还是手机浏览器,发给服务端的就是一个 HTTP 格式的请求&#xf…

微信网页授权之使用完整服务解决方案

目录 微信网页授权能力调整造成的问题 能力调整的内容和理由 原有运行方案 is_snapshotuser字段 改造原有方案 如何复现测试场景 小结 微信网页授权能力调整造成的问题 依附于第三方的开发,做为开发者经常会遇到第三方进行规范和开发的调整,如开…

【EI会议征稿通知】2024年材料物理与复合材料国际学术会议

2024年材料物理与复合材料国际学术会议 2024 International Conference on Materials Physics and Composites(ICMPC 2024) 2024年材料物理与复合材料国际学术会(ICMPC 2024)将于2024年5月24-26日在中国成都举行。ICMPC 2024将吸引顶尖的研究人员和从业…

Python flask 模板详解

文章目录 1 概述1.1 模板简介1.2 templates 文件1.3 简单应用 2 模板语法2.1 for 循环2.2 if 判断 3 模板的继承3.1 格式要求3.2 实现示例3.3 复用父模板的内容:super 1 概述 1.1 模板简介 定义:定义好的 html 文件,用于快速开发 web 页面J…

android tv开发-1,leanback 2

目录 presenter太多,如何理清关系 动画与点击 tv的登录与设置 搜索功能 带二级菜单的页面 presenter太多,如何理清关系 leanback里面已经定义好了adapter与presenter,直接继承它就可以了 private DefaultObjectAdapter mVideoAdapter; private VideoCardPresenter mCardP…

【不单调的代码】还在嫌弃Ubuntu终端?快来试试做些Ubuntu终端的花式玩法。

🎊专栏【不单调的代码】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 注意: 本文是在Ubuntu环境下进…

Unity中blendtree和state间的过渡

混合树状态之间的过渡 如果属于此过渡的当前状态或下一状态是混合树状态,则混合树参数将出现在 Inspector 中。通过调整这些值可预览在混合树值设置为不同配置时的过渡表现情况。 如果混合树包含不同长度的剪辑,您应该测试在显示短剪辑和长剪辑时的过渡表…

明道云入选亿欧智库《AIGC入局与低代码产品市场的发展研究》

2023年12月27日,亿欧智库正式发布**《AIGC入局与低代码产品市场的发展研究》**。该报告剖析了低代码/零代码市场的现状和发展趋势,深入探讨了大模型技术对此领域的影响和发展洞察。其中,亿欧智库将明道云作为标杆产品进行了研究和分析。 明…

指针的学习2

目录 数组名的理解 使用指针访问数组 一维数组传参的本质 冒泡排序 二级指针 指针数组 指针数组模拟二维数组 数组名的理解 数组名是数组首元素的地址 例外: sizeof(数组名),sizeof中单独放数组名,这里的数组名表示整个数组,计算的…

Day11代码随想录

Day11 20. 有效的括号 力扣题目链接(opens new window) 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右…

mac如何实现升级node版本、切换node版本

一、 查看node所有版本(前提:安装了nodejs) npm view node versions二、安装指定node版本 sudo n 版本号三、检查目前安装了哪些版本的node,会出现已安装的node版本 n四、切换已安装的node版本 sudo n 版本号其他命令 1、sudo npm cache…

PyTorch 2.2 中文官方教程(十六)

介绍 torch.compile 原文:pytorch.org/tutorials/intermediate/torch_compile_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 注意 点击这里下载完整的示例代码 作者: William Wen torch.compile是加速 PyTorch 代码的最新方法&#xff0…