聊聊elasticsearch7.8的模板和动态映射

最近想写一篇es的索引的一个设计,由于设计的东西特别多,当然,elasticsearch的模板动态映射也是其中的一个设计点,所以干脆先来聊聊索引的模板动态映射,模板,听这个名字就相当于一些公共可用的东西可以作为所有索引的一个设置,

本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/

一、elasticsearch模板 2.1、elasticsearch模板介绍

这里说明下,elasticsearch7.8的模板接口发生了一些变化,_template接口将在后期被废弃(虽然还能使用,不推荐),所以本文不介绍这个接口。既然有废弃的那肯定有新的方式来玩模板了。

最详细接介绍看官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.8/index-templates.html

现在模板分为两种模板,一个索引模板(index templates ),一个是组件模板(component templates),索引模板是告诉Elasticsearch如何在创建索引时配置索引的一种方法。模板是在创建索引之前配置的,当手动或通过索引文档创建索引时,模板的基础设置将用作创建索引。组件模板是可重用的构建块,用于配置映射、设置和别名。使用组件模板来构造索引模板,组件模板不能直接应用于索引。索引模板可以包含组件模板的集合,也可以直接指定设置、映射和别名。组件模板的接口是:_component_template,而索引模板的接口是:_index_template,下面来个官方的例子,可以明显的看出来组件模板component_template1和other_component_template被索引模板通过参数composed_of被引用,所以索引模板template_1既包括自己的设置,又包括了两个组件模板的设置,这样就可以轻松灵活的做组合,降低耦合性。

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": "EEE MMM dd HH:mm:ss Z yyyy" } } }, "aliases": { "mydata": { } } }, "priority": 10, "composed_of": ["component_template1", "other_component_template"], "version": 3, "_meta": { "description": "my custom" } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzfxx.html