摘要:可以通过向中追加,如果新增的和某个旧的重名,它将会替代那个旧的。中的的类型用于匹配被识别到的数据类型,换句话说,是对这个应该是什么类型的猜测。示例把自动识别为类型的定义为类型,把自动识别为类型的同时定义为和和定义应用于的。
基本思路
创建与索引名关联的templates,写入的时候指定索引名,根据es自动创建索引的特性+templates自动创建自己需要的索引
es动态mapping dynamic templatesDynamic templates 用于自定义在动态添加field的时候自动给field设置的数据类型, 给什么类型基于:
datatype detected by Elasticsearch
the name or the field
the full dotted path to the field
创建dynamic templatesDynamic templates are specified as an array of named objects:
"dynamic_templates": [ { "my_template_name": { ... match conditions ... "mapping": { ... } } }, ... ]
templates中的match conditions的类型 match_mapping_typemy_template_name can be any string value
The match conditions can include any of : match_mapping_type, match, match_pattern, unmatch, path_match, path_unmatch.
The mapping that the matched field should use
Templates将会顺序执行,直到新增的字段value某一个templates的match condition。可以通过PUT mappingAPI向templates list中追加templates,如果新增的templates和某个旧的重名,它将会替代那个旧的。
match_mapping_type用于匹配被dynamic field mapping识别到的es数据类型,换句话说,是es对这个field应该是什么类型的猜测。只有以下数据类型能被es自动识别:
boolean, date, double, long, object, string
可以在定义match_mapping_type的时候用*来表示匹配所有数据类型。
示例:
把自动识别为long类型的field定义为interger类型,把自动识别为string类型的field同时定义为analyzed和not_analyzed: PUT my_index { "mappings": { "my_type": { "dynamic_templates": [ { "integers": { "match_mapping_type": "long", "mapping": { "type": "integer" } } }, { "strings": { "match_mapping_type": "string", "mapping": { "type": "string", "fields": { "raw": { "type": "string", "index": "not_analyzed", "ignore_above": 256 } } } } } ] } } }match and unmatch
match和unmatch定义应用于filedname的pattern。
示例:
定义一个匹配所有以long_开头且不以_text结束的string类型的模板 PUT my_index { "mappings": { "my_type": { "dynamic_templates": [ { "longs_as_strings": { "match_mapping_type": "string", "match": "long_*", "unmatch": "*_text", "mapping": { "type": "long" } } } ] } } }match_pattern
用于调整match参数的行为,比如当match_pattern的值为regex时,match可以支持完整的java正则表达式而不是简单的通配符。
path_match and path_unmatch用于object类型
{name}和{dynamic_type}{name}和{dynamic_type}占位符放在mapping中,值为field name和field被es识别的数据类型
覆盖default template可以通过设置_default_类型的mapping覆盖默认的template,影响范围为所有的indices和types
通过index template api创建索引模板
指定索引名写入数据,或者用索引名创建索引
示例如下
(5.x+): PUT _template/template_1 { "index_patterns": ["te*", "bar*"], "settings": { "number_of_shards": 1 }, "mappings": { "_doc": { "_source": { "enabled": false }, "properties": { "host_name": { "type": "keyword" }, "created_at": { "type": "date", "format": "EEE MMM dd HH:mm:ss Z YYYY" } } } } }
(2.3) PUT /_template/template_1 { "template": "te*", "settings": { "number_of_shards": 1 }, "mappings": { "type1": { "_source": { "enabled": false }, "properties": { "host_name": { "type": "string", "index": "not_analyzed" }, "created_at": { "type": "date", "format": "EEE MMM dd HH:mm:ss Z YYYY" } } } } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/34364.html
摘要:快速搭建日志收集版本进行文章的第二次修改,包括了之前的简单方案的升级过程。分割线快速搭建日志收集第一版本新项目短时间来实现日志采集。 快速搭建elk日志收集 kafka版本 进行文章的第二次修改,包括了之前的简单方案的升级过程。 因为业务的不断更新升级,为了保证线上业务也能正常使用elk服务,并且使得elk的服务和线业务流解耦(即避免直接写入es的方式可能会带来的耗时影响)所以我们采用...
摘要:快速搭建日志收集版本进行文章的第二次修改,包括了之前的简单方案的升级过程。分割线快速搭建日志收集第一版本新项目短时间来实现日志采集。 快速搭建elk日志收集 kafka版本 进行文章的第二次修改,包括了之前的简单方案的升级过程。 因为业务的不断更新升级,为了保证线上业务也能正常使用elk服务,并且使得elk的服务和线业务流解耦(即避免直接写入es的方式可能会带来的耗时影响)所以我们采用...
摘要:要禁用允许通过通配符删除索引,或者将配置中的设置设置为。它删除了大多数标点符号,小写术语,并支持删除停用词。该分析器是像,而且还支持去除停止词。所述分析器使用一个正则表达式对文本进行拆分。 索引的基本操作 创建索引 PUT /{index} { settings: {}, mappings: { properties: { } } } 创建索引示例: PU...
ElasticSearch索引跨集群迁移 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:本文将介绍贷前系统的实践经验。使用位图索引查询男性并且已婚的记录,即第个用户为已婚男性。二使用心得下面结合贷前系统具体的使用案例,介绍的一些心得总结。 贷前系统负责从进件到放款前所有业务流程的实现,其中涉及一些数据量较大、条件多样且复杂的综合查询,引入ElasticSearch主要是为了提高查询效率,并希望基于ElasticSearch快速实现一个简易的数据仓库,提供一些OLAP相关功...
阅读 801·2021-10-18 13:32
阅读 3217·2021-09-30 09:47
阅读 1979·2021-09-23 11:21
阅读 1708·2021-09-09 09:34
阅读 3345·2019-08-30 15:43
阅读 1400·2019-08-30 11:07
阅读 935·2019-08-29 16:14
阅读 573·2019-08-29 11:06