您的位置:首页 > 其它

elasticsearch 开始 —— 基本概念

2014-06-07 14:38 162 查看


basic concepts 基本概念

elasticsearh 有几个核心概念,在一开始理解这些核心概念非常有助于学习elasticsearch。

near realtime (nrt) 近乎实时

Elasticsearh 是一个近乎实时的搜索平台,近乎实时是说从你索引你的文档开始,到此文档可被搜索是一眨眼的时间。大概 1s

cluster 集群

群集是一个或多个节点(服务器)的集合,一起支撑着你的整个数据,并提供跨所有节点联合索引和搜索的功能。一个集群通过一个唯一的名称来标识,默认情况下是用“elasticsearch”。这个名称是非常重要的,因为假如有一个节点要加入到此集群中,那么就需要这个名称。在具体实践中设置好的集群名称是非常有益的,但是再开发测试时使用默认名称也无所谓。

注意:只有一个节点的集群也是合法的,进一步说,你也可能有多个具有不同名称的集群。

node  节点

一个节点就是群集中的一台服务器,存储你的数据,并参与群集的索引和搜索功能。和集群一样,每一个节点也都有它自己的名称,默认情况下是Marvel类型的随机字符。你可以自定义节点名称。此节点名称对于集群管理者是非常有用的。一个节点可以通过配置所属的群集名称加入一个特定的集群。默认情况下,每个节点都设置了加入一个名为“elasticsearch”的集群,这意味着如果你启动了一些网络上的节点,并假设他们能够发现对方,他们都将自动成立并加入一个名为“elasticsearch“的集群。在一个集群中,您可以根据需要添加节点。当然,如果你的网络上当前没有运行其它Elasticsearch节点,那么单独的节点就会被当作一个集群启动。

index  索引

索引是有相似特性的文件的集合。例如,你可以有一个索引是客户数据,另一个索引是产品目录,还有一个索引是订单数据。索引是通过索引名称唯一确定的,索引名称必须全部是小写字母。索引名称用于es索引,搜索,更新或者删除索引中的文档。在一个集群中,您可以根据需要定义任意多个索引。

type  类型

在一个索引中,你可以定义一个或多个类型。 一个类型就是索引中的一个逻辑分区,分区的语义取决于你自己。例如你运行着一个博客网站,你将博客数据存储在一个索引中,你可以定义用户类型,评论类型等多种类型的索引数据。 

document 文档
一个文档就是一个可被索引的信息的基本单元。例如,你可以有一个文档记录着一个的客户信息,另一个文档的记录着商品的信息,还有一个为一个文档记录着一个订单的信息。这些文档中的数据采用JSON格式来记录。在一个 索引/类型 这样的空间下你可以存储任意多的文档。注意,一个文档物理上是驻留在一个索引中的,实际上每个文档都需要被索引分配到一个索引类型中。

shards & replicas 分片和副本

一个索引可以存储大量数据,但不可能超过所在单个节点的硬件限制。例如,在一个容量很小的节点上存储1TB的数据,这已经超过了其硬件资源最大容量。假设有足够的硬件资源,这样大的数据对于单个节点来说搜索处理来说也是非常缓慢的。为了解决这个问题。elasticsearch可以将一个索引分成多个片,称之为shards。当你要创建一个索引时可以指定此索引的分片个数,每一个分片其实都是具有完整索引功能的索引,可以被托管在任意的节点上。
分片是非常重要的,主要有两个原因:

它允许你横向扩充或者缩放索引容量
它可以允许你在多个节点上分发,并行运算多个分片,从而提高吞吐率和性能。
索引是如何分片并分布到集群节点上以及如何聚合起来以相应一个搜索请求的都由elasticsearch来管理,对用户来说是透明的。

在网络/云环境下,节点故障是随时可能发生的,拥有一种故障处理机制是非常有必要的。为了解决这个问题,elasticsearch 允许你为每个分片创建多个副本replicas.

副本是非常重要的,主要有两个原因:

它能够在单个节点失败或故障的情况下仍然保证集群的高可用性。值得注意的是,一个副本永远不会和其原始分片分配在相同的节点上。
它能够提升你的搜索性能和吞吐率,因为所有副本和分片一样,也是可以并行搜索的。
概括地说,每个索引可以被分成多个分片。索引也可以被复制为零(意味着没有副本)或更多次。一旦复制,每个索引都会有原始(主)分片(副本复制的来源分片)和副本分片。分片和副本的数量可以在索引创建时定义。创建索引后,您可以随时动态地改变副本的数量,但无法改变分片的数量。默认情况下,elasticsearch 会为每个索引分配5个原始分片和一个副本。如果你有两个节点,也就是说你的索引会有10个分片,5个原始分片5个副本分片。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息