博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch 动态映射——自动检测
阅读量:4943 次
发布时间:2019-06-11

本文共 1381 字,大约阅读时间需要 4 分钟。

ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引、类型等信息,在索引的同时会自动完成索引、类型、映射的创建。

那么什么是映射呢?映射就是描述字段的类型、如何进行分析、如何进行索引等内容。

本篇就着重讲述下,ES中映射的自动检测特性。

更多内容参考:

字段自动检测

在某个字段第一次出现时,如果之前没有定义过映射,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型也是一样:

转载于:https://www.cnblogs.com/xing901022/p/5011501.html

你可能感兴趣的文章
20172330 2017-2018-1 《Java程序设计》第五周学习总结
查看>>
目标检测入门
查看>>
React js ReactDOM.render 语句后面不能加分号
查看>>
iOS开发常用第三方库
查看>>
堆排序法---题目
查看>>
Js 怎么遍历json对象所有key及根据动态key获取值
查看>>
findStr
查看>>
使用工具 httpie调试API接口 - 转
查看>>
isa指针
查看>>
Bzoj4724--Poi2017Podzielno
查看>>
jvm三的三种类加载器
查看>>
linux之top命令
查看>>
VSTO:使用C#开发Excel、Word【13】
查看>>
Object.MemberwiseClone(浅Clone、深Clone)
查看>>
python之文件路径截取 & endswith()
查看>>
浏览器内的事件队列
查看>>
idea激活
查看>>
使用ML.NET实现白葡萄酒品质预测
查看>>
Linux Shell统计每秒钟内文件增加行数
查看>>
使用Button组件
查看>>