ES _type 的相关整理
来源:互联网 发布:阿里云怎么赚钱 编辑:程序博客网 时间:2024/09/21 06:19
类型:类型是在同一索引中存储多种类型的数据的方便的方法,以便保持索引的总数为低。在实现方面,它通过向每个在特定类型上搜索时自动用于过滤的文档添加“_type”字段来工作。类型的一个不错的属性是搜索跨相同索引的几种类型与搜索单个类型相比没有开销,它不会改变需要合并多少个碎片结果。
限制:
字段需要在不同类型之间保持一致。例如,如果两个字段在同一索引的不同类型中具有相同的名称,则它们需要具有相同的字段类型(字符串,日期等)并具有相同的配置。(里面一个index下面的field是共用的如图:
。存在于一种类型中的字段也将消耗其中此字段不存在的类型的文档的资源。如图:
对于doc值,问题更糟:为了速度的原因,doc值通常为每个文档保留固定量的磁盘空间,以便可以有效地解决这些值。这意味着如果Lucene确定它需要一个字节来存储给定数字字段的所有值,那么对于没有该字段值的文档,它将消耗一个字节
我应该使用哪一个?
这是一个棘手的问题,答案将取决于您的硬件,数据和用例。首先,重要的是要认识到类型是有用的,因为它们可以帮助减少Elasticsearch需要管理的Lucene索引的数量。但是还有另一种方法可以减少这个数字:创建具有较少分片的索引。例如,不是将5种类型折叠到同一索引中,而是可以创建5个索引,每个索引具有1个主要碎片。
我将尝试总结你应该问自己做出决定的问题:
你使用父/子吗?如果是这样,只能在同一索引中使用两种类型。
您的文档是否具有类似的映射?如果不是,请使用不同的索引。
如果每个类型有许多文档,那么Lucene索引的开销将很容易摊销,因此您可以安全地使用索引,如果需要,使用的分片数将少于默认值5。
否则,您可以考虑将文档放在不同类型的相同索引中。或甚至在同一类型
个人认为:还有数据平衡的功能,例如:以省份用户为例,_type为省份。这样查询全国的用户的时候,减少index的数量,而且不用考虑数据的平衡。(有些省份用户特别少,有些省份用户特别多),数据碎片数量明显占绝对优势。
总之,你可能会惊讶,没有像你预期的那样多的类型的用例。 这是正确的:由于我们上面提到的原因,在同一个索引中有几种类型的用例实际上很少。 不要犹豫为具有不同映射的数据分配不同的索引,但是请记住,您应该在集群中保留合理数量的分片,这可以通过减少不分配索引的分片数量来实现 需要高的写吞吐量和/或将存储少量的文档- ES _type 的相关整理
- iOS开发与OpenGL ES相关问题整理(1)
- ES的操作的整理1
- 关于es启动的相关报错
- 单片机的相关整理
- 经济指标的相关整理
- 排序相关的整理
- Java相关的整理
- 相关API的整理
- http相关的整理
- 一篇还不错的es的搜索方面的整理
- 整理的es中的mapping方面的内容
- iOS开发与OpenGL ES相关问题整理(2)- 绘制图片上下颠倒
- iOS开发与OpenGL ES相关问题整理(2)- 绘制图片上下颠倒
- ES-Hadoop 相关文章
- openGL ES投影变换相关
- bat知识点9_type
- JAVA反射_TYPE类型
- c++系列文章序
- 2016区域赛前补题训练
- 计算字符串种子串出现的个数
- Android View 和 ViewGroup 事件分发机制
- 设计模式-工程模式
- ES _type 的相关整理
- 命令行简介
- CENTOS 7.2 安装oracle 11.2.0.4 问题小计
- 爬取考试科目成绩、发送邮件提醒新出分
- js 毫秒转到日期
- Android view源码解析
- sql之left join、right join、inner join的区别
- 验证用户登录授权
- Spring定时任务 Could not find default TaskScheduler bean异常处理