Elasticsearch Mapping类型映射概述与元字段类型

Elasticsearch Mapping(字段映射) Elasticsearch Mapping前言什么是 Mapping二、使用步骤1.引入库2.读入数据总结 前言 Elasticsearch 的 Mapping 对应着数据库的 schema,比数据库的 schema 灵活的是 Mapping 可以是 Dynamic 的,也就是如果不定义 Mapping 还是可以往 ES 里面插入文档的。但是数据库中如果不新建表,是不能插入数据的。 什么是 Mapping 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步 阅读详情

Mapping,映射,相当于关系型数据库创建语句,定义文档字段及其类型、索引与存储方式。通常会涉及如下方面:

  • 文档中哪些字段需要定义成全文索引字段。
  • 文档中哪些字段定义为精确值,例如日期,数字、地理位置等。
  • 文档中哪些字段需要被索引(能通过该字段的值查询文档)。
  • 日期值的格式。
  • 动态添加字段的规则定义等。

1、类型映射概述
1.1 映射类型
Elasticsearch支持meta-fields、fields or properties两种映射类型,将决定文档的索引方式。

  • Meta-fields
    元数据字段用于定义文档的元数据字段的特征,文档的元数据字段主要包括_index、_type、_id、_source这4个字段。

  • Fields or properties
    属性字段列表,通过properties字段定义整个文档有效载荷的各字段的数据类型、分词器等属性。
    映射类型,可以理解为以何种方式来定义索引中一个类型的字段集。

1.2 数据类型
每一个字段都会指定一个数据类型,数据类型通常如下:
简单类型,例如text、keyword、date、long、double、boolean、ip
复合类型,诸如object(json)、netsed.
特殊类型,诸如geo_point、geo_shape(地图相关类型)、completion。
后续章节会单独重点剖析elasticsearch所支持的数据类型。

1.3 映射保护机制
es提供如下参数来限制es的行为:

  • index.mapping.total_fields.limit t
    索引中允许定义的最大字段(属性)个数,默认为1000。
  • index.mapping.depth.limit
    字段级联的最大深度,默认为20。
  • index.mapping.nested_fields.limit
    一个索引最多包含字段类型为nested的个数,默认为50。

1.4 动态映射机制
与关系型数据库不同的是,一个type(对应关系型数据库的表)中的字段可以在使用过程中动态添加。具体的动态映射机制,将在后续文章中单独结束。

1.5 更新已有映射定义
es不支持直接修改已索引的已存在的字段映射,因为修改字段映射,意味着已索引的数据生效,可以使用别名机制来修改字段的名称,如果需要修改已存在字段的映射,建议重新创建一个索引,再使用reindex API迁移数据。

1.6 索引、type组织方式
索引在创建时,Elasticsearch6.x版本只支持一个映射类型,而7.x版本后将完成删除映射类型。es5.x中一个索引包含多个type的情况再6.x版本将继续支持查询,7.0版本后,API将完成移除与多类型相关的API。

Elasticsearch6.x版本后为什么不继续对单一索引库提供多类型支持呢?
当初,为了方便理解es,通常与关系型数据库进行类比,例如es中的index(索引)相当于关系型数据库的database,而类型(type)相当于关系型数据库中的table。其实这是一个错误的比喻。在关系型数据库中,表是相互独立的,一个表中的列名与另外一个表中的列名相同是没有关系的,但对于es的类型映射定义,情况并非如此。

在es单一索引中,不同映射类型(type)具有相同名称的字段在内部都是由同一个Lucence字段来存储,这也就意味着同一个索引内不同的类型,如果出现名字相同的字段,其数据类型也必须相同。更重要的是,存储在同一索引中具有很少或没有共同字段的不同类型(实体)会导致数据稀疏,大大降低Lucece高效压缩文档的能力,影响其检索性能。

基于上述各种原因,故es将在后续版本中不支持一个索引中定义多个类型。

2、meta-field(元字段)
每个文档都有与之关联的元数据,例如_index、mapping _type和_id元字段。在创建映射类型时,可以定制其中一些元字段的行为。

  • identity meta-fields(表明文档身份的元字段)
  1. _index
    文档所在的索引,类似于关系型数据库的database。
  2. _uid
    _type与_id的组合,文档的唯一标识。
  3. _type
    文档映射类型。
  4. _id
    文档的_id值。
  • document source meta-fields
  1. _source
    文档的原始json数据。
  2. _size
    文档_souce字段的字节长度,需要插件:mapper-size plugin。
  • indexing meta-fields
  1. _all
    将所有字段映射成一个_all字段,在6.0.0版本后废弃,可以使用copy_to来定义需要聚合的字段。
    _field_names
    _field_names字段,用于索引文档中包含除null之外的任何值的每个字段的名称。exist查询使用这个字段来查找对于特定字段具有或不具有任何非空值的文档,也就是该字段记录的是字段值不为null的所有字段名称。当前版本,_field_names字段不包含启用了doc_values、norm的字段,对于启用doc_values或norm的字段,exist查询仍然可用,但不会使用_field_names字段。
    注:禁用_field_names通常是不必要的,因为它不再承载以前的索引开销。如果你有很多禁用doc_value和norm的字段,并且你不需要使用这些字段执行exist查询,你可能想禁用_field_names,你可以通过如下方式禁用_field_names字段:
PUT tweets
{
  "mappings": {
    "_doc": {
      "_field_names": {
        "enabled": false
      }
    }
  }
}
  1. _ignored
    设置为ignore_malformed=true的所有字段。
  • routing meta-field
  1. _routing
    分片路由字段。
  • other meta-field
    1._meta
    用于用户自定义的元数据,例如:
PUT my_index
{
  "mappings": {
    "_doc": {
      "_meta": { 
        "class": "MyApp::User",
        "version": {
          "min": "1.0",
          "max": "1.3"
        }
      }
    }
  }
}

本文初步介绍了Elasticsearch 类型映射与元字段类型,后续文章将介绍映射参数、elasticsearch支持的数据类型、自动类型映射机制等。


见文如面,我是威哥,热衷于成体系剖析JAVA主流中间件,关注公众号『中间件兴趣圈』,回复专栏可获取成体系专栏导航,回复资料可以获取笔者的学习思维导图。
在这里插入图片描述

【ElasticSearch-基础篇】Mapping结构 阅读详情

相关推荐

ElasticSearch映射Mapping

什么是Mapping映射? 映射:创建索引的时候,可以预先定义字段的类型以及相关属性。 作用:这样会让索引建立得更加的细致和完善! 分类:静态映射和动态映射 ElasticSearch在做字段映射的时候可以定义的类型 映射的属性方法 除了定义字段的类型,还可以给字段定义相关的属性 ...

ywl470812087的博客 12万+

ES学习笔记二(Mapping的定义以及自定义分词器)

什么是Mapping es7.0版本以后一个索引下面只允许一个Type,就相当于关系型数据库里面只能有一张表,每个Type下面的文档就相当于每个表的记录,一个Mapping属于一个索引的type,Mapping的作用就相当于规定数据库中每张表的字段的类型,也就是规定文档的数据类型 文档的数据类型 Dynamic Mapping 运行例子 可以看到es帮我们自定义了数据的...

weixin_44901065的博客 2698

卫星图像检测,分割,跟踪,超分辨率,数据集调研,以及论文笔记

目标检测,针对物体有很多类如桥,烟囱,罐子等,有静态图像下的检测,也就是图像源头多来自谷歌地图,但是前后帧没有任何联系,并且谷歌地图相对来说比较清楚,难度小一点,也有粗粒度以及较细粒度的检测,然后卫星视频的数据集较少,则可以通过前后帧的联系来辅助检测,并且卫星帧基本上只对车,船,飞机,火车进行检测,没有进行细粒度的检测即将车辆分类为卡车,皮卡,小轿车,但是关船,则可以分类为货船以及军舰,因为目前的卫星视频中小车实在太少了,难以进行更细粒度的检测。luojia 三号卫星。

zhangzhao147的博客 4707

Es之mapping

关系型数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用, 但 ES 中不是这样的。elasticsearch 是基于 Lucene 开发的搜索引擎,而 ES 中不同 type下名称相同的 filed 最终在 Lucene 中的处理方式是一样的。

一个菜鸡的博客 4464

Flink SQL数据血缘实战:如何用Calcite追踪字段级数据流向(附源码示例)

本文深入探讨了如何利用Apache Calcite解析Flink SQL执行计划,实现字段级数据血缘的追踪。通过扩展Calcite的元数据处理器,特别是针对Flink特有的Snapshot等节点,文章提供了从获取优化后的逻辑计划到提取并可视化血缘关系的完整实战方案,并附有核心源码示例,帮助开发者构建实时数仓的数据治理能力。

weixin_29032337的博客 142

S型速度曲线进阶:基于Sin²(x)的PLC平滑运动控制实践(以伺服/步进系统为例)

本文深入探讨了基于Sin²(x)的S型速度曲线在PLC平滑运动控制中的实践应用,特别针对伺服/步进系统。通过对比传统梯形曲线和七段S曲线,详细展示了Sin²(x)曲线在加速度连续性、计算效率和参数自适应性方面的优势,并结合博图平台的具体实现技巧和实战案例,为精密运动控制提供了优化方案。

weixin_28718793的博客 242

Elasticsearch教程(25) 详解mapping之nested

Elasticsearch详解mapping之nested1 前言2 创建nested字段的mapping3 插入测试数据4 nested查询5 nested聚合分析 1 前言 在工作开发中, 我们常遇到2张表示1对多的关系,这样的父子结构, 如果用MySQL存的话,子表设一个字段parentId存储父表的id,这样就可以用join关联查询. 那么ES作为NoSQL,它有更便捷的存储方式来保存父子结构: 第一种:join字段类型,子文档包含父文档ID,可用has_parent和has_child来查询 第

Java Spring Elasticsearch 4142

常见的十大量化投资策略(附源码)

量化投资策略是利用量化的方法,进行金融市场的分析、判断和交易的策略、算法的总称。著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01、海龟交易策略 海龟交易策略是一套非常完整的趋势跟随型的自动化交易策略。这个复杂的策略在入场条件、仓位控制、资金管理、止损止盈等各个环节,都进行了详细的设计,这基本上可以作为复杂交易策略设计和开发的模板。 海龟交易策略源码:https://www.myquant.cn/docs/python_strategyies/110 0.

小壁虎的春天 2万+

ES核心术语

ES核心术语 索引 index --表 类型 type --表逻辑类型 文档 document --行 字段 fields --列 ES 核心概念 映射 mapping --表结构定义 近实时 NRT --Near real time 节点 node --每一个服务器 shard replica --数据分片与备份 ...

罗彬桦的博客 604

MIPI转LVDS芯片调试实战:从Kernel到UEFI的完整点亮流程

本文详细解析了MIPI转LVDS芯片调试的全流程,从Kernel驱动开发到UEFI早期初始化,涵盖I2C通信、电源时序控制等核心挑战。通过LT9211芯片实战案例,提供设备树配置、电源时序优化及显示异常排查等实用技巧,助力工程师高效完成屏幕调试工作。

weixin_30314813的博客 450

java实现长短期记忆人工神经网络LSTM(附完整源码)

java实现长短期记忆人工神经网络LSTM(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1691

es重建字段类型_ES之四:Elasticsearch Mapping类型映射概述与元字段类型

Mapping,映射,相当于关系型数据库创建语句,定义文档字段及其类型、索引与存储方式。通常会涉及如下方面:文档中哪些字段需要定义成全文索引字段。文档中哪些字段定义为精确值,例如日期,数字、地理位置等。文档中哪些字段需要被索引(能通过该字段的值查询文档)。日期值的格式。动态添加字段的规则定义等。1、类型映射概述1.1 映射类型Elasticsearch支持meta-fields、fields or...

weixin_39953244的博客 904

NVIDIA A100驱动及CUDA安装指南

NVIDIA A100驱动及CUDA安装指南:详细介绍了在Ubuntu系统下安装A100显卡驱动和CUDA工具包的完整流程,包括环境准备、驱动安装、CUDA配置及性能优化建议。特别推荐猿界算力平台提供开箱即用的A100算力租赁服务,具备专业团队支持、灵活租期和实惠价格等优势。文末通过PyTorch测试验证了A100设备的可用性,展示了80GB显存的强大计算能力。

2401_89353317的博客 1511

elasticsearch使用指南之Elasticsearch Mapping类型映射概述与元字段类型 ...

作者简介:《RocketMQ技术内幕》作者、中间件兴趣圈微信公众号维护者。 Mapping,映射,相当于关系型数据库创建语句,定义文档字段及其类型、索引与存储方式。通常会涉及如下方面: 文档中哪些字段需要定义成全文索引字段。 文档中哪些字段定义为精确值,例如日期,数字、地理位置等。 文档中哪些字段需要被索引(能通过该字段的值查询文档)。 日期值的格式...

weixin_34414196的博客 323

基于STM32LXXX的模数转换芯片ADC(TLA2528IRTER)驱动C程序设计

define TLA2528_ADDR 0x12 << 1 // 用于HAL传输的8位地址(写入为0x24,读取为0x25)// 100kHz (示例值,需根据实际时钟计算)#define TLA2528_REG_PIN_CFG 0x00 // 引脚配置寄存器。#define TLA2528_REG_CHN_SEL 0x01 // 通道选择寄存器。

myron6688的博客 230

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

elasticsearch使用指南之Elasticsearch Mapping类型映射概述与元字段类型

作者简介:《RocketMQ技术内幕》作者、中间件兴趣圈微信公众号维护者。 Mapping,映射,相当于关系型数据库创建语句,定义文档字段及其类型、索引与存储方式。通常会涉及如下方面: 文档中哪些字段需要定义成全文索引字段。 文档中哪些字段定义为精确值,例如日期,数字、地理位置等。 文档中哪些字段需要被索引(能通过该字段的值查询文档)。 日期值的格式...

weixin_33947521的博客 182

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Elasticsearch Mapping类型映射概述与元字段类型,快手支付中台java面试题

index.mapping.depth.limit 字段级联的最大深度,默认为20。 index.mapping.nested_fields.limit 一个索引最多包含字段类型为nested的个数,默认为50。 1.4 动态映射机制 与关系型数据库不同的是,一个type(对应关系型数据库的表)中的字段可以在使用过程中动态添加。具体的动态映射机制,将在后续文章中单独结束。 1.5 更新已有映射定义 es不支持直接修改已索引的已存在的字段映射,因为修改字段映射,意味着已索引的数据生效,可以使用别名机制.

m0_64205564的博客 1290

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Elasticsearch - Elasticsearch 映射(Mapping)详解 定义字段类型

本文详细介绍了Elasticsearch中的映射(Mapping)概念及其应用。主要内容包括: Mapping的定义与重要性:作为索引的"蓝图",决定了字段如何存储、索引和搜索。 核心字段类型详解: text与keyword的区别与应用场景 数值类型(推荐scaled_float) date、boolean等常用类型 object与nested的区别 Mapping设计最佳实践: 禁用Dynamic Mapping 合理使用ignore_above 关闭不需要索引的字段 巧用别名字段 文

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

ElasticSearch入门之索引映射mapping管理, es如何查看索引字段类型, es复制索引库 09

1. 为什么要映射? es中的文档等价于java中的对象,那么在java中有字段(比如string, int, long等类型), 同理在es索引中的具体字段也是有类型的. PUT /document/article/1 { "title" : "elasticsearchshi是是什么", "author" : "zhangsan", "titleScore" : 60 } 如上这...

啊策策大数据社区 2万+

Elasticsearch 7.x 映射(Mapping)中的字段类型

概念 Elasticsearch的映射用来定义一个索引中的文档如何被存储,定义一个映射类似于定义一个Mongo DB集合,在Elasticsearch 7.x中,映射和索引是一对一的关系。映射分为静态映射和动态映射,前者需要用户手动定义,后者则直接在向一个未生成的索引添加文档的时候自动生成。 ...

APlus 1万+

Elasticsearch的Mapping

例子:给user索引创建两个模板,第一个模板将long类型的属性默认转换为integer类型,第二个模板将以sum_开头的字段且不以_text结尾的字段且为String类型的字段转换为keyword类型。映射模板用来解决不确定的类型或字段名索引的创建,可以理解为批量处理索引的mapping。映射参数就是在创建索引时候的mapping中可以配置什么参数,分别代表什么含义。es在增加数据的时候如果没有指定字段的类型,es会自动分配类型。在创建Mapping时候,手动创建类型。

qq_43676797的博客 1474

ES 08 - 配置Elasticsearch的映射 (mapping)

目录 1 映射的相关概念 1.1 什么是映射 1.2 映射的组成 1.3 元字段 1.4 字段的类型 2 如何配置mapping 2.1 创建mapping 2.2 更新mapping 2.3 查看mapping 1 映射的相关概念 1.1 什么是映射 (1) 映射(mapping): 定义index的元数据, 指定要索引并存储的文档的字段类型. 也就是说映射决定了Elasticsearch在建立倒排索引、进行检索时对文档采取的相关策略, 如数字类型、日期类型、文本类型等等.

xiangjai的专栏 1802

ElasticSearch映射 Mapping

ElasticSearch映射 Mapping 为了能够把日期字段处理成日期, 把数字字段处理成数字, 把字符串字段处理成全文本( Full-text) 或精确的字符串值, Elasticsearch需要知道每个字段里面都包含了什么类型。 这些类型和字段的信息存储( 包含) 在映射( mapping) 中。 正如《数据吞吐》 一节所说, 索引中每个文档都有一个类型(type)。 每个类型拥有自己...

周天祥的博客 2万+
上一篇: Elasticsearch Document Bulk API详解、原理与示例
下一篇: Elasticsearch Mapping parameters(主要参数一览)
中间件兴趣圈
中间件兴趣圈 2020博客之星TOP2 2020博客之星TOP2 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄15年 4万+粉丝 351原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间件兴趣圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值