Elasticsearch动态模板设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch动态模板设置相关的知识,希望对你有一定的参考价值。
参考技术A 在我们最开始使用ES的时候,可能还不太了解mapping,也没有添加过mapping为什么我们还是能够正常的添加文档。那是因为ES可以动态映射,添加文档的时候遇到没有的字段,可以动态的添加到mapping中,下面是一些默认的mapping方式。
| 数值 | 如果缺失在mapping中添加类型 |
| null | 空值不添加类型到mapping |
| true、false | 添加一个boolean类型 |
| 浮点数 | 添加一个floating类型 |
| 整数 | 添加一个long类型|
| object | 添加一个object类型 |
| array | 根据数组第一个元素决定类型 |
|字符串 | 可能被映射为date、double、long、text、keyword类型 |
注意:
数字类型默认的是被映射为long而不是integer
字符串可以被映射为多种类型,主要看内容
我们可以自定义字符串映射为日期的格式
如果觉得ES默认的mapping方式对于自己的业务来说还有优化空间,我们就可以自定义的动态mapping方式定制映射方式。
根据字段类型匹配通过 match_mapping_type 属性来控制,当添加文档的时候,ES的JsonParser解析出来的类型是match_mapping_type指定的类型,就会使用对应的mapping
根据字段名称映射使用的是 match、unmatch、match_pattern 属性来控制。
按路径匹配使用的是 path_match、path_unmatch 属性来指定。
添加动态索引有2种方式:
第一种就是为索引添加mapping的时候同时指定动态映射的mapping。
第二种就是在索引模板中指定。
前面我们已经看了在添加索引mapping的时候指定,下面我们就来看一下在设置索引模板的时候指定。
如上所示,就是在索引模板中最常见的属性了:
order:当索引名称匹配到多个索引模板的时候,换选择order值大的
index_patterns:索引名称匹配表达式,例如,所用以名称以test开头的都可以匹配到test*
settings:索引配置
mappings:默认的mapping
ElasticSearch之动态映射和模板
1 类型确定机制
mappings
numeric_detection
dynamic :是否支持动态添加字段
2 动态模板(dynamic_templates:基于字段)
希望根据不同情形,如JSON格式中的字段名称和字段类型,来确定不同类型。
3 索引模板(index template)
以上是关于Elasticsearch动态模板设置的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch速学 - IK中文分词器远程字典设置
ElasticsearchElasticsearch 动态模板(Dynamic templates)