7.1-elasticsearch索引中的字段映射

ES映射(mapping)是定义文档及其包含字段的存储和索引方式的一组过程
摘要由CSDN通过智能技术生成

映射(mapping)是定义文档及其包含字段的存储和索引方式的一组过程
字段映射需要考虑的问题:
1)、哪个string类型的字段应该作为全文索引;
2)、哪些字段应该包含数字,日期或者地理位置;
3)、日期类型值应该被如何格式化;
4)、自定义规则来控制动态添加字段的映射;

映射的定义包含以下两个部分:

1、ES索引结构元字段

标识元字段:表示文档相关元数据

序号 类型 说明
1 _index 表示文档所属索引名称
2 _type 表示文档所属索引的类型名称,7.x之后均为_doc
3 _id 文档唯一id

文档数据元字段

序号 类型 说明
1 _source 文档原始JSON数据
2 _size _source字段内容的字节大小(需安装mapper-size插件)

索引元字段

序号 类型 说明
1 _field_names 记录索引文档的所有non_null值的字段
2 _ignored 文档中所有在索引时指定无需索引字段(使用ignore_malformed标识)

路由元字段

序号 类型 说明
1 _routing 自定义路由值,将文档路由到指定分片

其它元字段

序号 类型 说明
1 _meta 由应用指定的元数据,可看做应用的标识数据
2、文档内容属性

字段类型
1)、简单类型有text,keyword,date,long,double,boolean或ip;
2)、支持json分层的类型,如object或者nested;
3)、专门类型,如geo_point,geo_shape或completion;

实际场景中我们可能希望在不同场景以不同的方式使用相同的字段,这可以使用多字段(multi-fields)映射处理,例如一个string类型字段可以被映射成text字段以用于全文检索,同时也可以作为提个keyword类型用于排序或者聚合操作,甚至可以将同一个字段使用不同的分词器(standard analyzer、english analyzer、french analyzer)进行分词处理;

防止字段映射冲突的设置
同一个索引当中映射太多的字段可能会导致映射冲突,进而会导致内存不足以及数据无法恢复的情况;
在开启动态映射的情况下,若新插入的文档中有未被映射的字段,在插入之时新的字段将会添加到索引映射当中,这样随着映射的增加可能会导致问题;
以下设置可以限制索引映射字段的数量以防止产生映射冲突情况:

序号 类型 说明
1 index.mapping.total_fields.limit 索引映射字段最大值,字段和对象的映射以及字段别名都计入此限制,默认值1000
2 index.mapping.depth.limit 索引字段的最大深度,以内部对象的数量衡量;若所有字段都在跟对象级别定义,则深度为1,若有一个对象映射,则深度为2,以此类推,默认值20;
3 index.map
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值