带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(3)

简介: 带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(3)

创建

 

新版本索引自动配置功能,主要依托组件模板(component template)和索引模板(index template)2 个概念来完成。下面依次来介绍他们是如何实现的。

 

组件模板的创建

 

组件模板是用来构建索引模板的特殊模板,它的内容一般是多个索引模板的公有配置,索引模板在创建时,可以声明引用多个组件模板。

 

在组件模板中可配置的索引内容有:别名aliases、配置settings、映射mappings3 个,具体配置方式与创建索引时一致。组件模板只有在被索引模板引用时,才会发挥作用。当我们需要创建或更新一个组件模板时,向/_component_template路径发送 PUT 请求即可。

 

具体示例如下:

 

# 创建组件模板
PUT /_component_template/template_1?create=true&master_timeout=30s   #1
{
  "template": {  # 2
    "settings": {
      "number_of_shards": 1
    },
    "mappings": {
      "_source": {
        "enabled": false
      },
      "properties": {
        "name": {
          "type": "keyword"
        }
      }
    },
"aliases": {
      "test-index": {}
    }
  },
  "version": 1,    #3
  "_meta": {       #4
    "description1": "for test",
    "description2": "create by phoenix"
  }
}

1、#1 处向/_component_template/template_1发送 PUT 请求创建一个名为template_1的组件模板,模板名可以任意替换,需要注意的是,Elasticsearch 中预置有6个组件模板:logs-mappings、logs-settings、metrics-mappings、metrics-settings、synthetics-mapping、synthetics-settings,建议不要覆盖。同时 url 中还包含2个可选的查询参数create和master_timeout。

l create,表示此次请求是否是创建请求,如果为 true 则系统中如果已有同名的会报错,默认为 false,表示请求可以是创建也可能是更新请求。

l master_timeout,表示可以容忍的连接 Elasticsearch 主节点的时间,默认是30s,如果超时则请求报错。

2、#2 处template的内容是对索引的设置,主要有别名,映射和配置,在本例中配置了索引分片数是 1,_source不用保存,索引有名为name的属性,类型是 keyword,同时索引别名有test-index。

3、#3 处是用户指定的组件模板的版本号,为了方便外部管理,此为可选项,默认不会为组件模板增加版本号。

4、#4 处是用户为组件模板设置的 meta 信息,该对象字段可随意配置,但不要设置的过大。该字段也是可选的。

 

索引模板的创建

 

创建或更新一个索引模板的方式都是向/_index_template发送 1 个 PUT 请求。索引模板可以配置的内容主要有 3 类,分别是别名aliases、配置settings、映射mappings。这 3 部分的配置方式,与创建索引时的设置完全一样这里不再赘述。

创建索引模板的示例:


PUT /_index_template/test_template?create=false&master_timeout=30s #1
{
  "index_patterns" : ["te*"],    #2
  "priority" : 1,   #3 
  "composed_of": ["template_1"], #4
  "template": {     #5
    "settings" : {
      "number_of_shards" : 2
    }
  },
  "version": 2,   #6
  "_meta": {      #7
    "user": "phoenix",
    "time": "2021/05/06"
  }
}
# 测试模板
POST /_index_template/_simulate_index/test    #8
{
  "template" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "2"  # 索引模板覆盖了组件模板的配置
      }
    },
    "mappings" : {
      "_source" : {             # 使用组件模板的配置
        "enabled" : false
      },
      "properties" : {
        "name" : {        # 使用组件模板的配置
          "type" : "keyword"
        }
      }
    },
    "aliases" : {
      "test-index" : { }     # 使用组件模板的配置
    }
  }
}


1、#1 处向/_index_template/test_template发送 PUT 请求创建索引模板,模板名称为test_template,名称可任意填写,与组件模板相同,有2个可选的查询参数:

l create,表示此次请求是否是创建请求,如果为 true 则系统中如果已有同名模板则会报错,默认为 false,表示请求可以是创建也可能是更新请求。

l master_timeout,表示可以容忍的连接 Elasticsearch 主节点的时间,默认是30s,如果超时则请求报错。

2、#2 处index_patterns字段用于设置匹配索引的规则,目前仅支持使用索引名称匹配,支持*号作为通配符,该字段是必填字段。需要注意 Elasticsearch 自带了3种匹配规则的索引模板:logs-*-*、metrics-*-*、synthetics-*-*,建议不要做相同配置。

3、#3 处priority字段配置的是模板权重,当 1 个索引名符合多个模板的匹配规则时, 会使用该值最大的作为最终使用的模板,此值默认为 0,Elasticsearch 自带的模板此值是100。

4、#4 处composed_of字段用于配置索引模板引用的组件模板,此处引用的组件模板配置自动会增加到该模板中。此例我们引用了之前创建的template_1组件。

5、#5 处template的内容是对索引的设置。

6、#6 处是用户指定的索引模板的版本号,为了方便外部管理,此为可选项,默认不会为组件模板增加版本号。

7、#7 处是用户为索引模板设置的 Meta 信息,该对象字段可随意配置,但不要设置的过大。该字段也是可选的。

8、#8 处用模拟 API 创建名为test的索引,我们发现返回的模板包含了模板test_template和组件template_1的所有配置。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
人工智能 自然语言处理 搜索推荐
6个好用的AI写作工具合集,各种AI写作软件类型超全整理!
AI生成营销文案、生成文章标题、改写润色内容、写作素材搜集...好用的AI写作工具有哪些?
6个好用的AI写作工具合集,各种AI写作软件类型超全整理!
|
5月前
|
缓存 移动开发 小程序
部署即运营!Uniapp+PHP校园小程序源码平台开发,功能全覆盖,让你的校园项目“一步到位”
面向高校高频需求,推出Uniapp+PHP校园服务小程序源码,集成跑腿代办、外卖配送、二手交易、社交互动等核心功能,支持多校区管理与快速部署,助力学生团队或服务商轻松落地运营。(238字)
284 2
|
缓存 网络协议 网络安全
/mydata *(rw,sync,no_subtree_check)什么意思?
/mydata *(rw,sync,no_subtree_check)什么意思?
684 1
|
11月前
|
测试技术 持续交付 虚拟化
VMware Holodeck 9.0.1.0 发布 - 自动化部署 VCF 实验环境
VMware Holodeck 9.0.1.0 发布 - 自动化部署 VCF 实验环境
257 0
VMware Holodeck 9.0.1.0 发布 - 自动化部署 VCF 实验环境
|
运维 自然语言处理 数据库
Odoo 中文版安装详解
Odoo 是一款支持多语言的企业管理软件,用户可轻松切换至中文界面。本文详解了 Odoo 的手工安装流程,包括 Docker 安装、镜像拉取与容器运行,同时分析了安装中的常见难题,如 Docker 配置复杂、镜像拉取困难及参数设置繁琐等。为简化安装,推荐使用 Websoft9 解决方案,通过其控制台快速部署 Odoo,无需关心底层技术细节,专注于企业管理功能的配置与使用,高效实现系统搭建与运维。
1231 1
|
网络协议 网络安全 网络虚拟化
神州数码DCN学习笔记(一)
文章主要介绍了交换机的基本配置和操作,包括用户模式、特权模式、全局配置模式、接口配置模式和VLAN配置模式等。详细列出了常用的命令及其功能,并通过例题展示了如何配置VLAN和远程管理交换机。
557 1
|
数据采集 监控 关系型数据库
CDC 与 Oceanbase 的激情碰撞:实时采集数据的震撼之旅,颠覆数据世界的神秘冒险!
【8月更文挑战第7天】在数据处理领域,实时采集变得至关重要。OceanBase是一款高性能、可扩展的分布式数据库。通过变更数据捕获(CDC)技术实时采集其数据是一项关键技术。利用如Debezium等工具,可以实现OceanBase的数据变动捕捉。示例代码展示了如何配置Debezium以监听OceanBase的数据变更。实际应用中需按业务需求定制数据处理逻辑,并实施监控与错误管理以保障采集的准确性和稳定性,从而为业务提供实时数据支持,推动创新发展。
569 1
|
安全 测试技术
【ZYNQ】ZYNQ7000 全局定时器及其驱动示例
【ZYNQ】ZYNQ7000 全局定时器及其驱动示例
878 0
课外闲谈3.define与typedef的区别
第一行中的宏定义的意思就是将INT_PTR这样的一个符号代替int*,所以在这里,b只是一个普通变量。
569 0
课外闲谈3.define与typedef的区别
|
计算机视觉
Echarts饼图,自定义饼图图例的排列方式, formatter使用语法
Echarts饼图,自定义饼图图例的排列方式, formatter使用语法

热门文章

最新文章