Elasticsearch 动态映射——自动检测
时间:2022-04-22
本文章向大家介绍Elasticsearch 动态映射——自动检测,主要内容包括字段自动检测、日期自动检测、数字自动检测、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
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型也是一样:
- memcpy的函数
- 你的密码被破解了?看看你的Apple ID、邮箱密码是不是这些!
- Oozie分布式任务的工作流——脚本篇
- hexo配置自己的博客站点
- Oozie分布式任务的工作流——Sqoop篇
- realloc invalid pointer错误解析
- qsort(),sort()排序函数
- 前端打包成桌面应用、以及chrome扩展
- Oozie分布式任务的工作流——Spark篇
- vue 实现 tomato timer(蕃茄钟)
- Linux下TCP连接过程总结
- PHP常用库函数介绍+常见疑难问题解答
- AcFun×讯飞输入法AI方言保护计划 用方言打破次元壁
- directshow、 Emgucv入门
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 贷款诈骗 x 摸版0day + 实战预警脚本
- 你不知道的 Linux 使用技巧
- 一文详解 Websocket 的前世今生
- 实例 | 教你用Python写一个电信客户流失预测模型
- OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测
- 看了这个总结,其实 Matplotlib 可视化,也没那么难!
- 使用OpenCV进行模糊检测(拉普拉斯算子)
- 利用opencv对图像进行长曝光
- 总说手机没有“好壁纸”,Python一次性抓取500张“美女”图片,够不够用!
- KEDA发布2.0(Beta)|来一个伸缩测试
- pandas入门:Series、DataFrame、Index基本操作都有了!
- 这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!
- 手把手教你用 Python 搞定网页爬虫!
- 为并发而生的 ConcurrentHashMap,基于 Java8 分析
- 使用Kustomize定制Helm Chart