带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(3)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(3)

《Elastic Stack 实战手册》——三、产品能力——3.3.基础篇——3.3.2.专有名词解释(2) https://developer.aliyun.com/article/1231573


Type

 

类型是文档的逻辑容器,类似于表是行的容器。

 

您将具有不同结构(模式)的文档放在不同类型中。 例如,你可以使用一种类型来定义聚合组,并在人们聚集时为事件定义另一种类型。

 

每种类型的字段定义称为映射。 例如,name 将映射为字符串,但 location 下的 geolocati-on 字段将映射为特殊的 geo_point 类型。每种字段的处理方式都不同。 例如,你在名称字段中搜索单词,然后按位置搜索组以查找位于居住地附近的组。

 

很多人认为 Elasticsearch 是 schema-less 的。大家都甚至认为 Elasticsearch 中的数据库是不需要 mapping 的。其实这是一个错误的概念。schema-less 在 Elasticsearch 中正确的理解是,我们不需要事先定义一个类型关系数据库中的 table 才使用数据库。

 

在 Elasticsearch 中,我们开始可以不定义一个 mapping,而直接写入到我们指定的 index中。这个 index 的 mapping 是动态生成的 (当然我们也可以禁止这种行为)。其中的数据项的每一个数据类型是动态识别的。比如时间,字符串等,虽然有些数据类型,还是需要我们手动调整,比如 geo_point 等地理位置数据。

 

另外,它还有一个含义,同一个 type,我们在以后的数据输入中,可能增加新的数据项,从而生产新的 mapping。这个也是动态调整的。


Elasticsearch 具有 schema-less 的能力,这意味着无需显式指定如何处理文档中可能出现的每个不同字段,即可对文档建立索引。 启用动态映射后,Elasticsearch 自动检测并向索引添加新字段。 这种默认行为使索引和浏览数据变得容易-只需开始建立索引文档,Elasticsearch 就会检测布尔值,浮点数和整数值,日期和字符串,并将其映射到适当的 Elasticsearch 数据类型。

 

由于一些原因,在 Elasticsearch 6.0 以后,一个 Index 只能含有一个 type。这其中的原因是:相同 index 的不同映射 type 中具有相同名称的字段是相同; 在 Elasticsearch 索引中,不同映射 type 中具有相同名称的字段在 Lucene 中被同一个字段支持。在默认的情况下是 _doc。在未来8.0的版本中,type 将被彻底删除。


Index

 

在 Elasticsearch 中,索引是文档的集合。


image.png

每个 Index 一个或许多的 documents 组成,并且这些 document 可以分布于不同的 shard之中。

image.png

很多人认为 index 类似于关系数据库中的 database。这中说法是有些道理,但是并不完全相同。其中很重要的一个原因是,在Elasticsearch 中的文档可以有 object 及 nested 结构。一个 index 是一个逻辑命名空间,它映射到一个或多个主分片,并且可以具有零个或多个副本分片。

 

每当一个文档进来后,根据文档的 id 会自动进行 hash 计算,并存放于计算出来的 shard 实例中,这样的结果可以使得所有的 shard 都比较有均衡的存储,而不至于有的 shard 很忙。

 

shard_num = hash(_routing) % num_primary_shards

 

在默认的情况下,上面的 _routing 既是文档的 _id。如果有 routing 的参与,那么这些文档可能只存放于一个特定的 shard,这样的好处是对于一些情况,我们可以很快地综合我们所需要的结果而不需要跨 node 去得到请求。比如针对 join 的数据类型。


一个索引可以存储超出单个结点硬件限制的大量数据。比如,一个具有 10 亿文档的索引占据1TB 的磁盘空间,而任一节点都没有这样大的磁盘空间;或者单个节点处理搜索请求,响应太慢。

 

为了解决这个问题,Elasticsearch 提供了将索引划分成多份的能力,这些份就叫做分片

(shard)。当你创建一个索引的时候,你可以指定你想要的分片 (shard) 的数量。每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。

 

分片之所以重要,主要有两方面的原因:

 

l 允许你水平分割/扩展你的内容容量

l 允许你在分片(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提高性能/吞吐量


《Elastic Stack 实战手册》——三、产品能力——3.3.基础篇——3.3.2.专有名词解释(4) https://developer.aliyun.com/article/1231571

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
11月前
|
前端开发 数据安全/隐私保护
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程 前端uniapp+H5 后端FastAdmin框架 可打包成APP多端运行 亲测可用
301 13
|
11月前
|
存储 数据可视化 搜索推荐
教育团队协作效率飙升,六款软件究竟在哪?
教育教培行业需高效管理学生作业以提升教学质量。为此,J人主导的教育团队可通过六款可视化团队协作办公软件优化作业管理流程:板栗看板、Notion、ClickUp、Airtable、Slack。这些软件分别在作业流程呈现、任务分配、资源整合、沟通协作及数据分析等方面展现出色,有助于构建条理化、个性化的作业管理体系,满足教育团队的高效管理需求。
228 3
|
人工智能 机器人 API
AppFlow:将文心智能体加入你的社交群聊
通过阿里云AppFlow,只需简单配置,无需编写代码,即可将百度文心智能体接入钉钉群聊,为群聊添加一个专业的AI助手。本文以钉钉群聊为例,详细介绍了如何创建钉钉应用、AI卡片、配置AppFlow连接流以及创建钉钉机器人,最终实现AI助手在群聊中的应用。
493 9
|
数据库 开发者
EasyCode 自动生成代码
【10月更文挑战第16天】总的来说,EasyCode 自动生成代码是一款非常有价值的工具。它为开发者们带来了便捷、高效和创新,让软件开发变得更加轻松和有趣。随着技术的不断进步,相信 EasyCode 还会不断完善和发展,为开发者们提供更多更好的服务。
204 1
|
存储 安全 Java
Java 数据结构类型总结
在 Java 中,常用的数据结构包括基础数据结构(如数组和字符串)、集合框架(如 Set、List 和 Map 接口的多种实现)、特殊数据结构(如栈、队列和双端队列)、链表(单链表、双链表和循环链表)以及图和树等。这些数据结构各有特点和适用场景,选择时需考虑性能、内存和操作需求。集合框架提供了丰富的接口和类,便于处理对象集合。
317 9
|
消息中间件 弹性计算 运维
在家运维不用慌 | 盘点那些远程运维中的云上利器
远程办公期间,降低非必要的协作成本和本地操作,来提升开发和运维效率,显得尤为重要。此外,大量的在线教育、在线医疗等行业的客户在疫情期,遇到了流量激增的情况,那么是否有在不影响现有架构的情况下,通过一些工具型产品,就能提升业务的可用性呢? 本文将介绍几款阿里云的开发和运维工具,优势是降低计算资源成本、提升开发运维效率、优化协作成本。
4090 96
在家运维不用慌 | 盘点那些远程运维中的云上利器
|
机器学习/深度学习 人工智能 自然语言处理
ACL 2023奖项公布:3篇最佳论文、39篇杰出论文,多家国内机构上榜(1)
ACL 2023奖项公布:3篇最佳论文、39篇杰出论文,多家国内机构上榜
881 0
|
人工智能 数据库
数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)(上)
数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)
|
缓存 API Android开发
Android Jetpack Compose——Paging3
本Demo采用Hilt+Retrofit+Paging3完成,主要为了演示paging3分页功能的使用
706 0
Android Jetpack Compose——Paging3
|
存储 监控 NoSQL
基于图数据库搭建企业级的推荐类系统
本文为您介绍基于专有云敏捷版数据库场景DBStack和图数据库搭建企业级推荐类系统。
477 0
基于图数据库搭建企业级的推荐类系统

热门文章

最新文章