ELK第八篇:ElasticSearch: Index 和 Type 的区别

ELK合集(四):Elasticsearch关键术语之Index索引 持续更新 这个章节涉及到的相关概念 使用和配置等 会持续更新 Index索引 概念 名词 就是一个表 存了一类文档 从数据库的角度 ES的一个index索引就是一个表 (数据库常说 查一下这个表的数据 ES叫做查一下这个index索引的数据) 其他含义 名词 一个Btree索引 一个倒排索引 也叫索引 动词 给ES数据库插入一条Document文档数据的过程 也叫索引 创建一个倒排索引的过程 也叫... 阅读详情

ElasticSearch: Index 和 Type 的区别
作者: fengchang 时间: February 10, 2017 分类: 数据库
原文: Index vs. Type By Adrien Grand
译者: fengchang

对于 ES 的新用户来说,有一个常见的问题:要存储一批新的数据时,应该在已有 index 里新建一个 type,还是给它新建一个 index?要想回答这个问题,我们必须先理解这两者是怎么实现的。

过去,我们为了让 ES 更容易理解,经常用关系型数据库做一个比喻: index 就像关系型数据库里的 database, type 就像 database 里的 table。但是这并不正确。由于两种数据库存储数据的方式是如此不同,任何比喻都是没有意义的。这种比喻往往会导致对 type 的滥用。

Index 是什么

Index 存储在多个分片中,其中每一个分片都是一个独立的 Lucene Index。这就应该能提醒你,添加新 index 应该有个限度:每个 Lucene Index 都需要消耗一些磁盘,内存和文件描述符。因此,一个大的 index 比多个小 index 效率更高:Lucene Index 的固定开销被摊分到更多文档上了。

另一个重要因素是你准备怎么搜索你的数据。在搜索时,每个分片都需要搜索一次, 然后 ES 会合并来自所有分片的结果。例如,你要搜索 10 个 index,每个 index 有 5 个分片,那么协调这次搜索的节点就需要合并 5x10=50 个分片的结果。这也是一个你需要注意的地方:如果有太多分片的结果需要合并,或者你发起了一个结果巨大的搜索请求,合并任务会需要大量 CPU 和内存资源。这是第二个让 index 少一些的理由。

Type 是什么

使用 type 允许我们在一个 index 里存储多种类型的数据,这样就可以减少 index 的数量了。在使用时,向每个文档加入 _type 字段,在指定 type 搜索时就会被用于过滤。使用 type 的一个好处是,搜索一个 index 下的多个 type,和只搜索一个 type 相比没有额外的开销 —— 需要合并结果的分片数量是一样的。

但是,这也是有限制的:

不同 type 里的字段需要保持一致。例如,一个 index 下的不同 type 里有两个名字相同的字段,他们的类型(string, date 等等)和配置也必须相同。
只在某个 type 里存在的字段,在其他没有该字段的 type 中也会消耗资源。这是 Lucene Index 带来的常见问题:它不喜欢稀疏。由于连续文档之间的差异太大,稀疏的 posting list 的压缩效率不高。这个问题在 doc value 上更为严重:为了提高速度,doc value 通常会为每个文档预留一个固定大小的空间,以便文档可以被高速检索。这意味着,如果 Lucene 确定它需要一个字节来存储某个数字类型的字段,它同样会给没有这个字段的文档预留一个字节。未来版本的 ES 会在这方面做一些改进,但是我仍然建议你在建模的时候尽量避免稀疏。[1]
得分是由 index 内的统计数据来决定的。也就是说,一个 type 中的文档会影响另一个 type 中的文档的得分。
这意味着,只有同一个 index 的中的 type 都有类似的映射 (mapping) 时,才应该使用 type。否则,使用多个 type 可能比使用多个 index 消耗的资源更多。

我应该用哪个

这是个困难的问题,它的答案取决于你用的硬件、数据和用例。首先你要明白 type 是有用的,因为它能减少 ES 需要管理的 Lucene Index 的数量。但是也有另外一种方式可以减少这个数量:创建 index 的时候让它的分片少一些。例如,与其在一个 index 里塞上 5 个 type,不如创建 5 个只有一个分片的 index。

在你做决定的时候可以问自己下面几个问题:

你需要使用父子文档吗?如果需要,只能在一个 index 里建立多个 type。
你的文档的映射是否相似?如果不相似,使用多个 index。
如果你的每个 type 都有足够多的文档,Lucene Index 的开销可以被分摊掉,你就可以安全的使用多个 index 了。如果有必要的话,可以把分片数量设小一点。
如果文档不够多,你可以考虑把文档放进一个 index 里的多个 type 里,甚至放进一个 type 里。
总之,你可能有点惊讶,因为 type 的使用场景没有你想象的多,这是正确的。由于我们上面提到原因,在一个 index 中使用多个 type 的情景其实很少。如果你的数据有不同的映射,那就给他们分配不同的 index。但是请记住,如果不需要很高的写入吞吐量,或者存储的文档数量不多,你可以通过减少 index 的分片来使集群中的分片数量保持合理。

[1] posting list 和 doc value 都是 Lucene 的压缩技术,原理是保存后一个文档和前一个文档的差异,而不是完整的文档。

原文转载自:http://bayescafe.com/database/elasticsearch-using-index-or-type.html

Milvus向量数据库学习(二)- MetricType(度量类型)​、IndexType(索引类型)详细介绍 在 Milvus 向量数据库中,MetricType(度量类型)和 IndexType(索引类型)是影响向量存储、检索性能和精度的核心参数 阅读详情

相关推荐

【2021末九软工边缘人保研】川大-中科院网络中心-华师夏令营+哈工大本-中科院网络中心-西交-厦大-中山-武大-北航预推免

2021末九软工边缘人保研记录一、写在前面二、个人背景 一、写在前面 2020年计算机保研可谓是诸神黄昏,卷的头破血流(指我等菜鸡)。疫情的原因,今年的夏令营和预推免基本全部改为线上,机试取消,能不能拿到offer基本完全取决于背景以及面试表现(当然也有个别头铁非要机试,甚至笔试的学校)。大佬们offer收割不停,我等边缘人只能看着一封封拒信发呆。 这种情况下,只有985 Rank5%以及211 Rank2%之前的大佬能够较为轻松地拿到面试入场券。贴一个上交电院夏令营要求你们感受一下: 预推免相比起夏令营

weixin_43222706的博客 4235

ElasticSearch: Index 和 Type 的区别

原文: Index vs. Type By Adrien Grand 译者: fengchang 对于 ES 的新用户来说,有一个常见的问题:要存储一批新的数据时,应该在已有 index 里新建一个 type,还是给它新建一个 index?要想回答这个问题,我们必须先理解这两者是怎么实现的。 过去,我们为了让 ES 更容易理解,经常用关系型数据库做一个比喻: index 就像关系

小小北漂 3109

强化学习_06_pytorch-TD3实践(BipedalWalkerHardcore-v3)

DDPG的critic会高估, 从而导致actor策略失败。TD3是增加了三个关键技巧优化DDPG。经过优化后的TD3(Twin Dalayed DDPG 双延迟深度确定性策略梯度算法)适合于具有高维连续动作空间的任务。

RL小站 2688

Elasticsearch的元字段 (_index、_type、_source、_routing等)

如果不指定_routing的值, 默认使用文档的_id字段. 如果存在父文档则使用其_parent的编号.// 此文档使用'user_5220'作为其路由值, 在查询、更新、删除时同样需要提供此路由值_routing"query": {

hellozhxy的博客 1669

(ZOS-API)Matlab控制ZEMAX软件调整光学系统某镜面位姿

所用软件的版本:MatlabR2022a, Zemax OpticStudio2024R1交互扩展功能,Zemax和可以同时打开,操作会比较方便在ZEMAX软件中,调整次镜位置通常有两种方法:1.在次镜前后各添加一个坐标间断面,并修改其“偏心X”“偏心Y”等参数来调整次镜的位姿;2.或者直接在次镜属性选项中设置相关数值。这两种方法对Zernike系数的采集结果无显著影响。

ecilifurt的博客 911

数据分析是什么?

说道“数据分析”一词,大家应该并不陌生,数据分析从字面上来理解,就是对数据做出分析然后得出一个结论,看起来浅显易懂,下面我们把这个词语分开得到的是“数据”与“分析”。“数据”的范围就很广泛了,小到一个计量数字,大到成亿级别的数据汇总,都可以称为数据;“分析”一词并不难理解,以智慧思维的方法对某一事物做出合理的解释,给出结论是为分析,一般会用到数学上的分析方法,比如统计学或者概率论等等。 1. 什么是数据分析 1) 数据分析发展背景 进入到 21 世纪以后,伴随着互联网的迅速发展,大数据应运而生,越来越多的数

MC_XY的博客 5432

es7.x 基本知识扫盲 type,分片,副本,读写流程

在一个索引中,可以定义一种或者多种数据类型,一个类型是你的缩影的一个逻辑上的分类/分区。在不同的版本,类型发生了不同变化。当你创建一个索引的时候,你可以指定你想要的分片的数量。,这个“索引”可以被放置到集群中的任何节点上。默认不再支持指定地索引类型,默认为:_doc。支持多种类型type。

健康平安的活着的专栏 2702

REST-meta-MDD Data总结

sMRI数据使用:nwc1、nwc2、nwc3(同样数据集相关论坛中有相关信息指向需要使用wc1、wc2、wc3)多方咨询与讨论后决定使用nwc数据,这里说明wc数据相对wc数据要大的多如wc1的大小为1.33GB,而nwc1的数据却有6.90GB。VBM文件:/REST-meta-MDD/Sharing/REST-meta-MDD-VBM- phase1 -Sharing.tar.gz。1、Excel中的表型信息:1-男,2-女;-9999或空白表示缺少数据。

2404_88295660的博客 1532

ES 关于 Index、Type、Document

转载:Elasticsearch 7 : 关于 Index、Type、Document - 乐天笔记 含义 Index:索引。复数是 Indices。 Type:类型。 Document:文档。 文档是 JSON 类型的。 与 MySQL 类比 可以将 ES 中的这三个概念和 MySQL 类比: Index 对应 MySQL 中的 Database; Type 对应 MySQL 中的 Table; Document 对应 MySQL 中表的记录。 一个MySQL实例中可以创建多个 Da

正怒月神的博客 3364

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1367

16、AI与无人机助力紧急器官移植及医疗物资运输

本文探讨了AI与无人机(UAV)集成模型在紧急器官移植和医疗物资运输中的应用。传统运输方式受限于交通、时间和环境因素,而基于图神经网络(GNN)的AI-UAV系统可实现高效、智能、全天候的医疗物资配送,具备实时温湿度监控、自动导航和适应复杂地形等优势。文章分析了该模型在血液、器官运输中的关键作用,展示了其在澳大利亚、中国、美国等国的实际应用案例,并通过表格与流程图说明运作机制。同时,文章还探讨了技术、法规和社会层面的挑战及应对策略,展望了未来技术融合、应用拓展和国际合作的发展趋势,凸显其在全球医疗物流中的广

lll78的博客 102

Elasticsearch 7 : 关于 Index、Type、Document

含义 Index:索引。 Type:类型。 Document:文档。 文档是 JSON 类型的 与 MySQL 类比 可以将 ES 中的这三个概念和 MySQL 类比: Index 对应 MySQL 中的 Database; Type 对应 MySQL 中的 Table; Document 对应 MySQL 中表的记录。 一个MySQL实例中可以创建多个 Database,一个Database中可以创建多个Table。 从 ES 7.0 开始,Type 被废弃 在 7.0 以及之后的版本中 Type 被

思考、总结、专注 1099

信号处理算法:离散余弦变换(DCT)_(1).离散余弦变换(DCT)概述

离散余弦变换的数学定义如下:对于一个长度为NNN的离散信号xnx(n)xn,其DCT变换后的系数XkX(k)XkXk∑n0N−1xncos⁡πNn12kk012N−1Xkn0∑N−1​xncosNπ​n21​kk012N−1其中,kkk是频率指数,nnn是时间或空间索引。离散余弦变换(DCT)是一种强大的信号处理技术,广泛应用于图像压缩、音频处理、数据压缩等领域。

2401_87715305的博客 1552

【postgres】10、INDEX Types 索引

postgres Index types 索引类型

呆呆的猫的博客 578

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ES index type 概述

1、index、type的初衷 之前es将index、type类比于关系型数据库(例如mysql)中database、table,这么考虑的目的是“方便管理数据之间的关系”。 2、为什么现在要移除type? 2.1 在关系型数据库中table是独立的(独立存储),但es中同一个index中不同type是存储在同一个索引中的(lucene的索引文件),因此不同type中相同名字的字段的定义...

liuyaokai1990的博客 1556

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Index 和Index Type 的区别

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33720452的博客 1602

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

elk笔记8--index

elk 笔记8--index1. index 创建的几种方式直接创建index按照当前日期创建索引创建带有rollover功能的索引2. 索引的常见设置基本设置常见问题3. 说明 1. index 创建的几种方式 直接创建index 第一种方式最普通,此类index 写入时在logstash中直接指定index01即可; 其缺点是当日志量大的时候,会影响性能。 PUT index01 {} out: { "acknowledged" : true, "shards_acknowledged" : t

脚步不能达到的地方,眼光可以达到;眼光不能达到的地方,精神可以飞到 2189

Elasticsearch--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)

这篇博客讲到基本概念包括:Index、Type、Document。集群,节点,分片及副本,倒排索引。 一、Index、Type、Document 1、Index index:索引是文档(Document)的容器,是一类文档的集合。 索引这个词在 ElasticSearch 会有三种意思: 1)、索引(名词) 类比传统的关系型数据库领域来说,索引相当于SQL中的一个数据库(Databa...

alan_liuyue的博客 2027

ElasticSearch 核心概念详解(index/type/doc/node/shard/replica/segment)

先写入内存 buffer,在 buffer 里的时候数据是搜索不到的;同时将数据写入 translog 日志文件。如果 buffer 快满了,或者到一定时间,就会将内存 buffer 数据 refresh 到一个新的 segment file 中,但是此时数据不是直接进入 segment file 磁盘文件,而是先进入 os cache。这个过程就是 refresh。

FeelTouch Labs 711

ElasticSearch : Index 和 Type 的区别

对于 ES 的新用户来说,有一个常见的问题:要存储一批新的数据时,应该在已有 index 里新建一个 type,还是给它新建一个 index?要想回答这个问题,我们必须先理解这两者是怎么实现的。 过去,我们为了让 ES 更容易理解,经常用关系型数据库做一个比喻: index 就像关系型数据库里的 database, type 就像 database 里的 table。但是这并不正确。由于两种数据库存储数据的方式是如此不同,任何比喻都是没有意义的。这种比喻往往会导致对 type 的滥用。 什么是 shard

幼儿园大班扛把子 1041

Elasticsearch中type(类型)是一个什么概念?

【代码】Elasticsearch中type(类型)是一个什么概念?

jifgnie的博客 692

Elasticsearch核心概念解析:索引、文档与类型

本文将对Elasticsearch中的索引(Index)、文档(Document)和类型(Type,注意:在Elasticsearch 7.x及以后的版本中,Type已被弃用,但为了说明早期版本的概念,本文仍保留Type的解释)进行详细的解析。在Elasticsearch的早期版本中,类型(Type)是索引中的一个重要概念,它类似于关系型数据库中的表(Table)。索引是数据的逻辑容器,文档是数据的最小单元,而类型(在旧版本中)则定义了文档的结构和字段。副本则是分片的备份,用于提高数据的可靠性和读取性能。

得塔云的博客 978

oracle索引index_type,oracle index索引相关笔记

学习oracle的索引1,索引的概念和分类1,create index可以建立索引在如下几种情况1,表,分区表,索引组织表,或集表的一个或多个列2,表或集表的一或多个标量类型的对象属性上1,经测在record类型不能用表类型2,plsql表类型同上3,nested 表的nested表列上1,问题,其语法及注意点4,官方文档2,索引的类型1,普通索引,默认即oracle创建的B树索引2,位图索引,以...

weixin_36440198的博客 2004

ElasticSearch 关于Index和Type的认知

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34302798的博客 469

ElasticSearch 实战:ES的元字段 (_index、_type、_source、_routing等)

在Elasticsearch中,元字段(Meta-fields)是系统自动为每一份文档添加的特殊字段,它们提供了有关文档存储和检索过程中的重要上下文信息。: 每次文档更新都会增加的版本号,用于实现乐观并发控制(Optimistic Concurrency Control),确保在并发环境下进行安全的更新和删除操作。: 在执行查询时,Elasticsearch会给每个匹配文档计算一个相关度得分,这个得分存储在。实战中,这些元字段会在文档的CRUD操作中频繁出现,比如在创建文档时指定。字段中,用于排序结果。

qq_33240556的博客 960

elasticsearch的index type经验

1.有很多人觉得index是数据库,type是不同表。但是其实使用起来并不是如此,我认为index就是一个表,type只是自带一个field而已。官网文档也是这样说。 https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html#_why_are_mapping_types_being_...

abcd1101的专栏 4035
上一篇: 什么是DSL和GPL
下一篇: 多线程-ThreadLocal
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值