es映射--动态映射

Elasticsearch的动态映射允许自动创建索引、字段和类型,方便快速探索数据。动态字段映射中,Elasticsearch会检测新字段并根据规则将其添加到映射中。动态模板则用于配置新索引的默认映射。日期检查默认开启,可自定义日期格式。数字检查默认关闭,可启用以自动映射数字串字段。
摘要由CSDN通过智能技术生成

1. 概述

Elastisearch最重要的特征之一就是,它尝试跳出固有的方式,让你尽可能快地开始探索你的数据。为了索引一条文档,你不必先创建一个索引,然后定义字段和映射类型,你可以直接索引一条文档,索引,字段和字段类型会自动地被创建。

PUT data/_doc/1
{
	"count": 5 
}

自动创建data索引,映射类型为_doc,并且有一个字段名为count,数据类型为long的映射字段

自动检测和添加新字段,被称为动态映射。你可以用以下参数自定义动态映射规则来满足你的目的:
动态字段映射: 控制动态字段检测的规则
动态模板: 自定义规则来配置动态添加的字段映射

TIP: 无论是自动创建还是显式创建索引,索引模板都允许你为新索引配置默认的映射,设置和别名。

2. 动态字段映射

默认地,当一个之前没有见过的字段出现在了一条文档中,Elasticsearch会将这个字段添加到类型映射中。可以通过将dynamic参数设置为false(忽略新字段,索引其他已知字段)或者strict(在遇到未知字段时拒绝索引这条文档,并且抛出异常),在文档和对象层面,禁用这种动态添加字段的行为。

假设dynamic映射参数被启用(=true), 一些简单的规则被用来决定一个新的字段应该被设置为哪种es的字段类型:

JSON 数据类型 Elasticsearch 数据类型
null 不添加该字段
true 或 false boolean类型字段
浮点数 float类型字段
整数 long类型字段
对象 object类型字段
数组 取决于数组中的第一个不为null值的类型
字符串 以下四种类型之一,date类型的字段(如果通过日期检查), double或float类型的字段(如果通过数字检查),text类型的字段(并且带一个类型为keyword的子字段)

这些是仅有的可以动态检查并添加的字段数据类型,所有其他的数据类型必须被明确的定义在映射类型中。

除了以下列出来的选项,动态字段映射规则可以在动态模板中被进一步自定义:

2.1 日期检查

如果启用日期检查—date_detection=true(默认),然后新的字符串字段的内容会被检查是否匹配任何dynamic_date_formats中指定的日期格式,如果发现了匹配,一个新的日期类型的字段将会以对应的格式被添加进映射类型中。
dynamic_date_formats的默认值为:
[“strict_date_optional_time”, “yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z”]

比如:

PUT my_index/_doc/1
{
   
	"create_date": "2015/09/02"
}

GET my_index/_mapping
{
   
  "my_index" : {
   
    "mappings" : {
   
      "properties" : {
   
        "create_date" : 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值