ES之API系列--index template(索引模板)的用法(有实例)

这篇具有很好参考价值的文章主要介绍了ES之API系列--index template(索引模板)的用法(有实例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文网址: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

示例 

es _template api介绍,ELK,elasticsearch,搜索引擎,java

查看单个索引模板

GET _index_template/template_name

示例

es _template api介绍,ELK,elasticsearch,搜索引擎,java

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

GET _index_template/template_pattern

示例

es _template api介绍,ELK,elasticsearch,搜索引擎,java

查看组件模板

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之类的类型。

配置方法

默认这种类型检测是开启的,配置方法如下:文章来源地址https://www.toymoban.com/news/detail-845572.html

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
    }
}

到了这里,关于ES之API系列--index template(索引模板)的用法(有实例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch Index Templates(索引模板),如何实现分布式锁

    “type”: “keyword” }, “created_at”: { “type”: “date”, “format”: “” } } } } } 代码@1:触发条件。 代码@2:索引配置定义。 代码@3:索引映射配置。 上述示例对应的JAVA示例如下: public static final void createIndexTemp() { RestHighLevelClient client = EsClient.getClient(); try { PutIndexTemplateRequ

    2024年04月22日
    浏览(36)
  • 【ES实战】索引模板template使用说明

    模板的主要作用:可以帮助简化创建索引的语句,将模板中的配置和映射应用到创建的索引中。 新建索引时,索引名称满足 index_patterns 条件的,将会使用索引模板中的配置和映射。 index_patterns 使用 * 进行通配,不支持复杂的正则。 indexPattern 要求: 不能包含空字符 不能以

    2023年04月20日
    浏览(45)
  • es elasticsearch 九 索引index 定制分词器 type结构后期弃用原因 定制动态映射 动态映射模板 零停机重建索引

    目录 索引index 定制分词器 Type底层结构及弃用原因 定制 dynamic mapping 定制dynamic mapping template 动态映射模板 零停机重建索引 生产环境应该度别名数据 索引index Put /index Stings 分片 Mapping 映射 Aliases 别名 增加 Put my_index2 {        \\\"settings\\\":{           \\\"number_of_shards\\\":3,      

    2024年02月06日
    浏览(39)
  • 一文说清楚c++模板Template的用法

    模板(Template)指c++程序设计语言中采用 类型 作为参数的程序设计。 1.通用格式 函数模板定义格式 其中,template和class是,class可以用template替换;括号中的参数叫做模板形参,模板形参需要调用该模板函数时提供的模板实参来初始化模板形参,一旦编译确定了实参类

    2024年02月14日
    浏览(43)
  • ES-index索引配置

      index索引配置项使用。 index_options   Index 有4中配置,可以控制倒排索引的内容。   Text类型默认记录positions,其他默认docs。记录的内容越多,所占用的空间越大。   Index 有4中配置如下: docs   记录 doc id 。 freqs   记录 doc id 和 term frequencies 。 positions   记录

    2023年04月08日
    浏览(35)
  • Elasticsearch Index Monitoring(索引监控)之Index Stats API详解

    index_current 当前正在执行索引操作的个数。 index_failed 失败的索引操作次数。 delete_total 执行删除索引操作的次数。 delete_time_in_millis 删除索引操作总耗时。 delete_current 当前正在执行删除索引操作的个数。 noop_update_total 空更新总次数(检测到空更新的次数)。 is_throttled 索引是

    2024年04月09日
    浏览(42)
  • python列表list的index方法的用法和实例

    目录 1.index方法的用法和实例 (1)语法:list.index(object[,start,end]) (2)用法:从列表中获取指定索引元素的第一个匹配位置。 (3)实例 ①简单的用法实例 ②与pop用法结合使用 ③if函数、while函数、input函数、for函数、split函数、pop方法结合使用 object:需要定索引的列表元

    2024年02月14日
    浏览(36)
  • ES自定义索引模板

    1、使用背景       软件运行过程中产生的日志数据,如果集中在一个索引中,会导致Elasticsearch集群的磁盘分配不均衡,其中某个节点的数据量超过阈值而进入只读状态。并且在数据量大的情况下对存放过久,实际意义不大的数据进行维护的时候难度非常大,单个索引内容过

    2024年02月11日
    浏览(28)
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引的解决办法

    使用nuget有时会出现 NuGet 程序包时出错: 无法加载源 https://api.nuget.org/v3/index.json 的服务索引。 [nuget.org] 无法加载源 https://api.nuget.org/v3/index.json 的服务索引。 发送请求时出错。 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 根据验证过程,远程证书无效。 这种

    2024年02月13日
    浏览(41)
  • kibana es创建模板,索引,导入数据,简单聚合查询

    1.创建模板 2.获取模板

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包