1.type是什么

type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器.

field的value,在底层的lucene中建立索引的时候,全部是opaque bytes类型,不区分类型的。

lucene是没有type的概念的,在document中,实际上将type作为一个document的field来存储,即type,es通过type来进行type的过滤和筛选。

2.es中不同type存储机制

一个index中的多个type,实际上是放在一起存储的,因此一个index下,不能有多个type重名,而类型或者其他设置不同的,因为那样是无法处理的

{"goods": {"mappings": {"electronic_goods": {"properties": {"name": {"type": "string",},"price": {"type": "double"},"service_period": {"type": "string"}            }},"fresh_goods": {"properties": {"name": {"type": "string",},"price": {"type": "double"},"eat_period": {"type": "string"}}}}}
}
PUT /goods/electronic_goods/1
{"name": "小米空调","price": 1999.0,"service_period": "one year"
}
PUT /goods/fresh_goods/1
{"name": "澳洲龙虾","price": 199.0,"eat_period": "one week"
}

es文档在底层的存储是这样子的

{"goods": {"mappings": {"_type": {"type": "string","index": "false"},"name": {"type": "string"}"price": {"type": "double"}"service_period": {"type": "string"},"eat_period": {"type": "string"}}}
}

底层数据存储格式

{"_type": "electronic_goods","name": "小米空调","price": 1999.0,"service_period": "one year","eat_period": ""
}
{"_type": "fresh_goods","name": "澳洲龙虾","price": 199.0,"service_period": "","eat_period": "one week"
}

3. type弃用

同一索引下,不同type的数据存储其他type的field 大量空值,造成资源浪费。

所以,不同类型数据,要放到不同的索引中。

es9中,将会彻底删除type。

Elasticsearch之type底层结构及弃用原因相关推荐

  1. 【ES】ElasticSearch搜索的底层原理?倒排索引和TF-IDF打分算法

    Elasticsearch搜索的底层原理 ES搜索是分词后,每个字可以利用FST高速找到倒排索引的位置,并迅速获取文档id列表,大大的提升了性能,减少磁盘IO. ES的搜索原理就是倒排索引 + TF- ...

  2. 小码哥iOS学习笔记第八天: block的底层结构

    一.最简单的block 1.最简单的block结构 ^{NSLog(@"this is a block");NSLog(@"this is a block"); ...

  3. [java] 虚拟机(JVM)底层结构详解[转]

    [java] 虚拟机(JVM)底层结构详解[转] 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领 ...

  4. HP-lefthand底层结构具体解释及存储灾难数据恢复

    HP-lefthand底层结构具体解释及存储灾难数据恢复 一.HP-lefthand的特点 HP-lefhand是一款很不错的SAN存储,使用iscsi协议为client分配空间. 它支持RAID5. ...

  5. Elasticsearch exception [type=action_request_validation_exception, reason=Validation Failed:

    Elasticsearch exception [type=action_request_validation_exception, reason=Validation Failed: type已经显 ...

  6. 从底层结构开始学习FPGA(5)----移位寄存器

    文章目录 系列目录与传送门 一.移位寄存器SRL 1.1.概述 1.2.概念 1.3.应用 1.4.结构 1.5.级联 三.移位操作 3.1.静态操作(移位长度固定) 3.2.动态操作(移位长度可变) ...

  7. 从底层结构开始学习FPGA(4)----MUX多路选择器(Multiplexer)

    文章目录 系列目录与传送门 一.什么是MUX 二.FPGA内部的MUX 三.总结 系列目录与传送门 <从底层结构开始学习FPGA>目录与传送门 一.什么是MUX 多路选择器MUX是一个多输 ...

  8. 从底层结构开始学习FPGA(1)----可配置逻辑块CLB(Configurable Logic Block)

    文章目录 系列目录与传送门 一.CLB概述 二.SLICEM与SLICEL 三.查找表LUT 3.1.移位寄存器SRL 3.2.分布式DRAM 四.多路选择器MUX 五.存储单元Storage Ele ...

  9. 从底层结构开始学习FPGA(8)----Block RAM(BRAM,块RAM)

    文章目录 系列目录与传送门 1.什么是BRAM 2.BRAM的组成 3.BRAM的使用 3.1.RAM 3.2.ROM 3.3.FIFO 4.一些需要注意的 4.1.自带的输出寄存器 4.2.BRAM ...

最新文章

  1. H G W S哪一个不是状态函数_HAWE哈威BVH11H/M/S/2-X24换向阀
  2. iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)
  3. 编写一个程序解决选择问题。令k=N/2。
  4. weblogic的安装、目录结构、启动
  5. 设置只能开启一个程序实例
  6. 系统背景描述_多元化多功能会议室报告厅智能控制系统方案
  7. Excel 转置分组时如何保留没有对应数据的空组
  8. 如何理解Scala:迷之翻转喵 —— 协变逆变全解析
  9. 注册表Regedit实现右键管理员权限运行notepad++打开文件
  10. c++ 字母降落小游戏
  11. python培训班出来能找到工作吗-Python培训班出来好找工作吗?
  12. h5手机端或PC端利用高德地图获取当前定位位置
  13. ChatGPT惊人语录大赏
  14. 必应每日一图直接获取及接口
  15. java手电筒源码_android平台手电筒开发源代码
  16. VLC Activex控件(VideoLAN.VLCPlugin.1 VideoLAN.VLCPlugin.2)的所有方法 属性及使用 在一个老外的网站上找到的
  17. maven出现No plugin found for prefix ‘help‘ in the current project and in the plugin groups [org.ap
  18. c语言的四大圣经,传说中的模拟电子四大圣经--值得永久珍藏
  19. [附源码]Java计算机毕业设计SSM个人相册管理系统
  20. EndNote执行Update Citations and Bibliography导致Word崩溃

热门文章

  1. B题 锅炉水冷壁温度曲线 2021年第一届长三角高校数学建模竞赛
  2. gdb+pwndbg使用初探
  3. git git git
  4. HTML5中各种标签总结(body标签)
  5. autossh端口映射
  6. SQLite 数据库注入总结
  7. python使用tomorrow实现多线程
  8. HTML5学习笔记(二)2015-12-7
  9. 【Vue】 vue-Router children 子组件空白显示,没有内容
  10. C++中的动态分配内存