Elasticsearch 动态映射——自动检测
来源:互联网 发布:linux chs bg 编辑:程序博客网 时间:2024/06/10 18:04
ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引、类型等信息,在索引的同时会自动完成索引、类型、映射的创建。
那么什么是映射呢?映射就是描述字段的类型、如何进行分析、如何进行索引等内容。
本篇就着重讲述下,ES中映射的自动检测特性。
更多内容参考:Elastisearch知识总结
字段自动检测
在某个字段第一次出现时,如果之前没有定义过映射,ES会自动检测它可能满足的类型,然后创建对应的映射。
JSON数据
ES中的数据类型
null
不会添加字段
true
or false
boolean
floating point number
double
integer
long
object
object
array
依赖于第一个非null得值
string
如果通过了date检测,则为date
如果通过了numeric检测,则为Number
上面就是类型自动检测的结果,除了上面列出的基本类型,其他的高级的类型比如geo,ip就需要手动指定了。
日期自动检测
日期自动检测,即date_detection是默认开启的,因此只要符合默认的日期格式,就可以自动创建成date类型
日期的格式为:
[ "strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]
例如:
$ curl -XPUT localhost:9200/test/test/1 -d '{"create":"2015/11/11"}'{"_index":"test","_type":"test","_id":"1","_version":1,"created":true}$ curl -XGET localhost:9200/test/_mapping?pretty{ "test" : { "mappings" : { "test" : { "properties" : { "create" : { "type" : "date", "format" : "yyyy/MM/dd HH:mm:ss||yyyy/MM/dd" } } } } }}
可以通过修改dynamic_date_formats
修改日期格式:
PUT my_index{ "mappings":{ “my_type":{"dynamic_date_formats":["MM/dd/yyyy"]} }}PUT my_index/my_type/1{"create_date":"09/25/2015"}
数字自动检测
数字自动检测,即numeric_detection默认是关闭的。因此需要手动打开:
PUT my_index{"mappings":{"my_type":{"numeric_detection":true}}}
当执行索引操作时,如果符合float型,就会自动创建为float
long型也是一样:
0 0
- Elasticsearch 动态映射——自动检测
- Elasticsearch - 自动检测及动态映射Dynamic Mapping
- Elasticsearch中的动态映射
- elasticsearch-动态映射
- elasticsearch-自定义动态映射
- elasticsearch-动态映射
- Elasticsearch学习笔记——Mapping映射
- [Elasticsearch] 索引管理 (四) - 动态映射
- elasticsearch的object类型和动态映射
- Elasticsearch之_default_—— 为索引添加默认映射
- ElasticSearch映射
- elasticsearch映射
- elasticsearch映射
- elasticsearch映射
- Elasticsearch(映射)
- ElasticSearch映射和分析
- [ElasticSearch]映射(Mapping)
- ElasticSearch映射和分析
- Elasticsearch 之 数据索引
- 解决mac环境下mysql出现only_full_group_by的错误
- mapPartitions各部分执行流程解析
- 程序员月薪多少才不会焦虑!
- 阿里2016大事记:假货再成最大伤痛
- Elasticsearch 动态映射——自动检测
- 从Java到Golang快速入门
- Elasticsearch之_default_—— 为索引添加默认映射
- IOS 应用图标当系统升级IOS7后变会默认
- serialVersionUID的一些知识
- mysql解决中文乱码问题
- 微信小程序-微信支付
- 进程与线程的一个简单解释(阮一峰)
- Golang必备技巧:接口型函数