02ElasticSearch相关概念(术语)
1. Elasticsearch核心概念
1.1 索引 index
一个索引就是一个拥有几分相似特征的文档的集合。 比如说, 你可以 有一个客 户数据的索引,另一个产品目录的 索引,还有一个订单数据 的索引。一个索引由一个名字 来标识( 必须全 部是小写 字母的),并且当我们要对对应于 这个索引中的文档进行索 引、搜索、更新和删除的时候 ,都要使 用到这 个名字。 在一个集群中,可以定义任意多的 索引。
1.2 类型 type
在一个索引中,你可以 定义一种或多种类型。一个类 型是你的 索引的 一个逻辑 上的分类/ 分 区,其语义完全由你来定。通常,会为具有一 组共同字段的文档定义一个类 型。比如 说,我 们假设你 运营一个博客平台并且将你所有的 数据存储到一个索引中。 在这个索引中,你可以为用户 数据定义 一个类 型,为博 客数据定义另一个类型,当然,也 可以为评论数据定义另一 个类型。
1.3 字段Field
相当于是数据表的字段 ,对文档数据根据不同属性进 行的分类 标识
1.4 映射 mapping
m a p p i n g 是处理数据的方 式和规则方面做一些限制, 如某个字 段的数 据类型、 默认值、分析器、是否被索引等等,这些都是映射里面可以 设置的,其它就是处理e s 里面 数据的 一些使用 规则设 置也叫做映射,按着最优规则处理数据对性能提高很大,因此 才需要建立映射,并且需要思 考如何建 立映射 才能对性 能更好。
1.5 文档 document
一个文档是一个可被索 引的基础信息单元。比如,你 可以拥有 某一个 客户的文 档,某一个产品的一个文档,当然 ,也可以拥有某个订单的 一个文档。文档以J S O N (J a v a s c r i p t O b j e c t N o t a t i o n ) 格式来表示,而J S O N 是一个到处存在的互联网数据交互格 式。在一个i n d ex / t y p e 里面 , 你可以存储 任意多的文档 。注意, 尽管一 个文档, 物理上 存在于一个索引之中,文档 必须被索引/ 赋予一个索引 的t y p e 。
1.6 接近实 时 NRT
Elasticsearch 是一个 接 近实时的搜 索平台。这意味 着,从 索引一 个文档直 到这个 文档能够被搜索到有一个轻微的延迟(通常是1 秒以内)
1.7 集群 cluster
一个集群就是由一个或 多个节点组织在一起,它们共 同持有整 个的数 据,并一 起提供索引和搜索功能。一个集群 由一个唯一的名字标识, 这个名字默认就是“Elasticsearch” 。这个 名字是重 要的, 因为一个节点只能通过 指定某 个集群的名字,来加入这个 集群
1.8 节点 node
一个节点是集群中的一 个服务器,作为集群的一部分 ,它存储 数据, 参与集群 的索引和搜索功能。和集群类似, 一个节点也是由一个名字 来标识的,默认情况下,这个 名字是一 个随机 的漫威漫 画角色的名字,这个名字会在启动 的时候赋予节点。这个名 字对于管理工作来说挺重要的 ,因为在 这个管 理过程中 ,你会去确定网络中的哪些服务器 对应于Elasticsearch 集 群 中的哪些节 点。
一个节点可以通过配置 集群名称的方式来加入一个指 定的集群 。默认 情况下, 每个节点都会被安排加入到一个叫做“Elasticsearch” 的集 群中,这 意 味着,如果你在你的网 络中启 动了若干 个节点 ,并假定它们能够相互 发现彼 此,它们将会自动地形成并 加入到一个叫做“Elasticsearch” 的 集群中 。
在一个集群里,只要你 想,可以拥有任意多个节点。 而且,如 果当前 你的网络 中没有运行任何Elasticsearch节点,这时启动一个节点,会 默认创建并加入一个叫做“Elasticsearch 的集群。
1.9 分片和 复制 shards&replicas
一个索引可以存储超出 单个结点硬件限制的大量数据 。比如, 一个具 有1 0 亿 文档的索引占据1 T B 的磁盘空间,而任一节点都没有这样大的 磁盘空间;或者单个节点处理 搜索请求 ,响应 太慢。为 了解决这个问题,Elasticsearch 提供了将索引划分成多份的 能力,这些份就叫做分片。当 你创建一 个索引 的时候, 你可以指定你想要的分片的数量。 每个分片本身也是一个功 能完善并且独立的“ 索引” ,这个 “ 索引” 可以 被放置 到集群 中的任何节点上 。分片很重要,主要有两方面的原因: 1 )允许 你 水平分割/ 扩展你 的内容容 量。 2 )允 许你在分 片(潜在地,位于多个节点上)之 上进行分布式的、并行的 操作,进而提高性能/ 吞吐量 。
至于一个分片怎样分布 ,它的文档怎样聚合回搜索请 求,是完 全由Elasticsearch管理的,对于作为用户的你来说,这些都是透明的。
在一个网络/ 云的环境 里,失败随时都可能发生,在 某个分片 / 节点 不知怎么 的就处于离线 状态,或者由于任何 原因消失了,这种情况下, 有一个故障转移机制是非常有 用并且是 强烈推 荐的。为 此目的,Elasticsearch 允许你创建分片的一份或多份拷贝, 这些拷贝叫做复制分片,或者 直接叫复 制。
复制之所以重要,有两 个主要原因: 在分片/ 节点失败 的情况 下,提供 了高可用性。 因为这个原因,注意到复制 分片从不与原/ 主要(o r i g i n a l / p r i m a r y ) 分片置于同一 节点上是 非常重 要的。扩 展你的 搜索量/ 吞吐量,因为搜索可以在所有的复制上并行运 行。总之,每个索引可以被分 成多个分 片。一 个索引也 可以被复制0 次(意思是没有复 制)或多次。一旦复制了, 每个索引就有了主分片(作为 复制源的 原来的 分片)和 复制分片(主分片的拷贝)之别。 分片和复制的数量可以在 索引创建的时候指定。在索引 创建之后 ,你可 以在任何 时候动态地改变复制的数量,但是 你事后不能改变分片的数 量。
默认情况下,Elasticsearch 中的每 个索引被分片5 个 主分片和 1 个复制, 这意味 着,如果你的集群中至少有两 个节点,你的索引将会有5 个 主分片和另外5 个复制分片 (1 个完全拷 贝), 这样的 话每个索引总共 就有1 0 个分片
本文深入探讨ElasticSearch的基本概念,包括索引、类型、字段、映射、文档、实时搜索、集群、节点、分片及复制等,揭示ElasticSearch如何高效处理大规模数据的奥秘。
2424

被折叠的 条评论
为什么被折叠?



