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

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

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.8.Index template(6) https://developer.aliyun.com/article/1230795


本例我们创建了名为bar-test-old的索引,其索引名以bar开头,匹配索引模板old_template的筛选规则,我们在创建时仅指定了副本数和 1 个ip属性,而使用 GET 请求查看索引信息时可以看出,索引模板中的别名配置、host_name属性和分片数的配置被使用了。但是关于_source的设置,由于创建索引时明确指出了,所以模板中的false配置被覆盖为了true。

 

当匹配到多个老版索引模板时,最终配置为多个模板的组合,当不同模板配置了相同字段时,那么以order高的模板配置为准。示例如下:

 

# 创建新版索引模板   
PUT /_index_template/new_template   #1
{
   "index_patterns": ["template*"],
   "priority" : 100, 
   "template": {
    "mappings": {
      "dynamic": "true"
    },
    "aliases": {
      "new-template": {}
    }
  }
}
# 创建老版索引模板,不配置 order
PUT /_template/old_template_1     #2
{
  "index_patterns": ["temp*"],
   "mappings": {
      "dynamic": "false"
    },
  "aliases": {
      "old_template_1": {}
    }
}
# 创建老版本索引模板,配置高 order
PUT /_template/old_template_2?order=10  #3
{
  "index_patterns": ["temp-*"],
   "mappings": {
      "dynamic": "strict"
    },
  "aliases": {
      "old_template_2": {}
    }
}
# 创建索引,名称会匹配 new_template 模板和 old_template_1 模板
PUT /template-test    #4
{
  "settings": {
    "number_of_shards": 2
  },
  "mappings": {
    "properties": {
      "ip":{
        "type": "ip"
      }
    }
  }
}
# 查看索引配置
GET  /template-test  #5
# 返回
{
  "template-test" : {
    "aliases" : {
      "new-template" : { }  #  仅有新版本模板的别名设置
    },
    "mappings" : {
      "dynamic" : "true",
      "properties" : {
        "ip" : {
          "type" : "ip"
        }
      }
    },
    "settings" : {
      "index" : {
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        },
        "number_of_shards" : "2",
        "provided_name" : "template-test",
        "creation_date" : "1620617781794",
        "number_of_replicas" : "1",
        "uuid" : "0PKYANozRya9zG3LdMG1UA",
        "version" : {
          "created" : "7100099"
        }
      }
    }
  }
}
# 创建索引,名称会匹配 old_template_1 模板和 old_template_1 模板
PUT /temp-test #6
{
  "settings": {
    "number_of_shards": 2
  },
  "mappings": {
    "properties": {
      "ip":{
        "type": "ip"
      }
    }
  }
}
# 查看索引配置
GET /temp-test
# 返回
{
  "temp-test" : {
    "aliases" : {
      "old_template_1" : { },  # old_template_1 的配置
      "old_template_2" : { }    # old_template_2 的配置
    },
    "mappings" : {
      "dynamic" : "strict",  # old_template_2 的配置
      "properties" : {
        "ip" : {
          "type" : "ip"
        }
      }
    },
    "settings" : {
        "refresh_interval" : "10s",
        "number_of_shards" : "2",
        "provided_name" : "temp-test",
        "creation_date" : "1620617979932",
        "number_of_replicas" : "1",
        "uuid" : "RwvrdGziT7iVmVutXYPwqA",
        "version" : {
          "created" : "7100099"
        }
      }
    }
  }
}

1、#1 处我们创建了 1 个新版本的索引模板匹配名字,以template开头的索引,设置可以动态增加属性并设置别名new-template。


2、#2 处我们创建了 1 个老版本的索引模板匹配名字,以temp开头的索引,设置不动态增加属性并设置别名old_template_1。

3、#3 处我们创建了 1 个老版本的索引模板匹配名字,以temp-开头的索引,设置有新增属性时报错并设置别名old_template_2,同时配置order为10。

4、#4 处我们创建了 1 个名为template-test的索引。

5、#5 处查看索引template-test的配置,该名称会匹配新版new_template模板,和老版

old_template_1模板,根据索引的别名信息,只有新版模板配置的别名可以看出,该索引仅仅应用了new_template模板。

6、#6 处创建了 1 个名为temp-test的索引。

7、#7 处查看索引temp-test的配置,该名称会匹配老版old_template_1和old_template_2模板,根据索引的别名信息有old_template_1和old_template_1可以看出,2 个模板的配置都应用了。通过dynamic字段为strict我们可以判断该字段使用了order较高的模板old_template_2的配置。

 


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.8.Index template(8) https://developer.aliyun.com/article/1230793

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
域名解析 网络协议 安全
DNS&BIND9安装配置
DNS概念,BIND9的详细配置安装
2517 2
电脑上扫码支付功能用法
  PC扫码支付的方式,支持前置模式和跳转模式。  前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以 iframe 方式请求支付宝页面。具体分为以下几种:  0:订单码-简约前置模式,对应 iframe 宽度不能小于600px,高度不能小于300px; qr_pay...
4083 12
|
7天前
|
人工智能 IDE 测试技术
阿里云Qoder 智能体编程平台详细介绍:产品核心能力、典型场景、价格及常见问题解答
本文详解阿里云Qoder(原通义灵码)智能体编程平台,平台以AI Agent深度融入全软件开发流程,覆盖桌面端、IDE插件、CLI等多端形态,集成多款主流大模型,采用Credits统一计费体系,支持从个人辅助编码到企业级全链路自主开发,9月新购个人版可享Credits翻倍加赠权益,适配不同规模团队的研发提效需求。
|
3月前
|
存储 人工智能 API
读懂AI Agent 构建逻辑:基础认知、技术栈、模块设计、实战示例与常见风险规避.149
AI Agent是具备感知、规划、工具调用、记忆与反思能力的自主智能体,区别于被动响应的大模型,能主动执行多步复杂任务。本文系统讲解其核心概念、五大能力、技能体系、执行流程、实践案例及常见问题,附完整学习路径。
602 5
|
3月前
|
人工智能 缓存 自然语言处理
阿里云TokenPlan是什么?百炼Token Plan按Credits计费、ai模型支持及省钱技巧(配置指南)
阿里云百炼Token Plan团队版是面向企业/团队的AI大模型订阅服务,以Credits统一计费,支持qwen3.6-plus、GLM-5、Qwen-Image等20+文本与图像模型,兼容Hermes Agent、OpenClaw等主流工具。提供标准(198元/月)、高级(698元)、尊享(1398元)三档坐席,额度分别为2.5万–25万Credits/月,多租户隔离、数据不用于训练,华北2(北京)地域可用。快速体验:https://t.aliyun.com/U/fPVHqY
573 0
|
5月前
|
自然语言处理 并行计算 计算机视觉
MoE技术分享
MoE(Mixture of Experts,混合专家模型)的概念最早可以追溯到 1991 年的相关论文。这一开创性工作为后续 MoE 模型的发展奠定了理论基础,其核心思想是采用“分而治之”的方式,将复杂任务拆解为多个子问题,并分别交由不同的“专家”模型处理,从而提升模型的表达能力和处理效率。
|
8月前
|
存储 弹性计算 关系型数据库
阿里云服务器ECS通用算力型u1实例ecs.u1-c1m2.large规格族收费199元一年(2核4G配置)
阿里云企业专享199元/年,2核4G、5M固定带宽、80G ESSD Entry云服务器,性能稳定,限企业用户限购1台,续费同价,适合轻量级企业应用与对外服务。
|
存储 运维 Cloud Native
数据库的未来发展趋势
【8月更文挑战第27天】数据库的未来发展趋势
1068 4
|
SQL Oracle 关系型数据库
Navicat
【8月更文挑战第28天】Navicat
835 4

热门文章

最新文章