Elasticsearch之type底层结构及弃用原因
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底层结构及弃用原因相关推荐
- 【ES】ElasticSearch搜索的底层原理?倒排索引和TF-IDF打分算法
Elasticsearch搜索的底层原理 ES搜索是分词后,每个字可以利用FST高速找到倒排索引的位置,并迅速获取文档id列表,大大的提升了性能,减少磁盘IO. ES的搜索原理就是倒排索引 + TF- ...
- 小码哥iOS学习笔记第八天: block的底层结构
一.最简单的block 1.最简单的block结构 ^{NSLog(@"this is a block");NSLog(@"this is a block"); ...
- [java] 虚拟机(JVM)底层结构详解[转]
[java] 虚拟机(JVM)底层结构详解[转] 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领 ...
- HP-lefthand底层结构具体解释及存储灾难数据恢复
HP-lefthand底层结构具体解释及存储灾难数据恢复 一.HP-lefthand的特点 HP-lefhand是一款很不错的SAN存储,使用iscsi协议为client分配空间. 它支持RAID5. ...
- Elasticsearch exception [type=action_request_validation_exception, reason=Validation Failed:
Elasticsearch exception [type=action_request_validation_exception, reason=Validation Failed: type已经显 ...
- 从底层结构开始学习FPGA(5)----移位寄存器
文章目录 系列目录与传送门 一.移位寄存器SRL 1.1.概述 1.2.概念 1.3.应用 1.4.结构 1.5.级联 三.移位操作 3.1.静态操作(移位长度固定) 3.2.动态操作(移位长度可变) ...
- 从底层结构开始学习FPGA(4)----MUX多路选择器(Multiplexer)
文章目录 系列目录与传送门 一.什么是MUX 二.FPGA内部的MUX 三.总结 系列目录与传送门 <从底层结构开始学习FPGA>目录与传送门 一.什么是MUX 多路选择器MUX是一个多输 ...
- 从底层结构开始学习FPGA(1)----可配置逻辑块CLB(Configurable Logic Block)
文章目录 系列目录与传送门 一.CLB概述 二.SLICEM与SLICEL 三.查找表LUT 3.1.移位寄存器SRL 3.2.分布式DRAM 四.多路选择器MUX 五.存储单元Storage Ele ...
- 从底层结构开始学习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 ...
最新文章
- H G W S哪一个不是状态函数_HAWE哈威BVH11H/M/S/2-X24换向阀
- iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)
- 编写一个程序解决选择问题。令k=N/2。
- weblogic的安装、目录结构、启动
- 设置只能开启一个程序实例
- 系统背景描述_多元化多功能会议室报告厅智能控制系统方案
- Excel 转置分组时如何保留没有对应数据的空组
- 如何理解Scala:迷之翻转喵 —— 协变逆变全解析
- 注册表Regedit实现右键管理员权限运行notepad++打开文件
- c++ 字母降落小游戏
- python培训班出来能找到工作吗-Python培训班出来好找工作吗?
- h5手机端或PC端利用高德地图获取当前定位位置
- ChatGPT惊人语录大赏
- 必应每日一图直接获取及接口
- java手电筒源码_android平台手电筒开发源代码
- VLC Activex控件(VideoLAN.VLCPlugin.1 VideoLAN.VLCPlugin.2)的所有方法 属性及使用 在一个老外的网站上找到的
- maven出现No plugin found for prefix ‘help‘ in the current project and in the plugin groups [org.ap
- c语言的四大圣经,传说中的模拟电子四大圣经--值得永久珍藏
- [附源码]Java计算机毕业设计SSM个人相册管理系统
- EndNote执行Update Citations and Bibliography导致Word崩溃