有一些概念是Elasticsearch的核心,从一开始就理解这些概念将极大地帮助简化学习过程。html
Elasticsearch是一个近乎实时的搜索平台,这意味着从索引文档到可搜索文档的时间有一点延迟(一般是一秒)。apache
集群是一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨全部节点的联合索引和搜索功能。集群由一个惟一的名称标识,默认状况下这个名称是“elasticsearch”。这个名称很重要,由于若是节点被设置为以这个名称加入集群,那么节点才能是集群的一部分。json
确保不要在不一样的环境中重用相同的集群名称,不然可能会致使节点加入错误的集群。例如,你可使用logging-dev
、logging-stage
和logging-prod
进行开发、阶段和生产集群。segmentfault
节点是做为群集一部分的单个服务器,存储数据并参与群集的索引和搜索功能。就像群集同样,节点由名称标识,默认状况下,该名称是在启动时分配给节点的随机通用惟一标识符(UUID)。若是不想要默认的节点名,能够定义任何想要的节点名。此名称对于管理目的很是重要,你能够在其中识别网络中哪些服务器与Elasticsearch集群中的哪些节点相对应。服务器
节点能够被配置为经过集群名称加入特定的集群。默认状况下,每一个节点都设置为加入名为elasticsearch
的集群,这意味着若是你在网络上启动了许多节点而且假设它们能够相互发现 - 它们将自动造成并加入名为elasticsearch
的单个集群。网络
在单个群集中,你能够拥有任意数量的节点。此外,若是你的网络上当前没有其余Elasticsearch节点正在运行,则默认状况下,启动单个节点将造成名为elasticsearch
的新单节点集群。elasticsearch
索引是具备某些相似特征的文档集合。例如,你能够拥有客户数据的索引,产品目录的另外一个索引以及订单数据的另外一个索引。索引由名称标识(必须所有小写),此名称用于在对其中的文档执行索引,搜索,更新和删除操做时引用索引。ide
在单个群集中,你能够根据须要定义任意数量的索引。性能
在6.0.0中已弃用
参见 删除映射类型
一种类型,曾经是索引的逻辑类别/分区,容许你在同一索引中存储不一样类型的文档,例如一种类型用于用户,另外一种类型用于博客帖子。再也不可能在索引中建立多个类型,而且将在更高版本中删除类型的整个概念,更多信息请参见删除映射类型。学习
文档是能够被索引的基本信息单元。例如,你能够为一个客户提供一个文档,为一个产品提供另外一个文档,为一个订单提供另外一个文档,该文档用JSON (JavaScript对象表示法)表示,这是一种广泛存在的internet数据交换格式。
在索引/类型中,能够存储任意数量的文档,请注意,尽管文档在物理上驻留在索引中,但实际上文档必须被索引/分配到索引中的类型中。
索引可能存储大量可能超过单个节点的硬件限制的数据。例如,占用1TB磁盘空间的十亿个文档的单个索引可能不适合单个节点的磁盘,或者可能太慢而没法单独从单个节点提供搜索请求。
为了解决这个问题,Elasticsearch提供了将索引细分为多个称为碎片的能力,建立索引时,只需定义所需的碎片数便可。每一个碎片自己都是一个功能齐全且独立的“索引”,能够托管在集群中的任何节点上。
碎片之因此重要,主要有两个缘由:
碎片的分布方式以及如何将其文档聚合回搜索请求的机制彻底由Elasticsearch管理,对用户而言是透明的。
在随时均可能发生故障的网络/云环境中,这很是有用,强烈建议使用故障转移机制,以防碎片/节点以某种方式脱机或因任何缘由消失。为此,Elasticsearch容许你将索引的碎片的一个或多个副本制做成所谓的副本碎片或简称副本。
复制之因此重要,主要有两个缘由:
总而言之,每一个索引能够拆分为多个碎片,索引也能够复制为零(表示没有副本)或更屡次。复制后,每一个索引都将具备主碎片(从中复制的原始碎片)和副本碎片(主碎片的副本)。
能够在建立索引时为每一个索引定义碎片和副本的数量。建立索引后,你还能够随时动态更改副本数,你可使用_shrink和_split API更改现有索引的碎片数,但这不是一项简单的任务,预先计划正确数量的碎片是最佳方法。
默认状况下,Elasticsearch中的每一个索引都分配了5个主碎片和1个副本,这意味着若是群集中至少有两个节点,则索引将包含5个主碎片和另外5个副本碎片(1个完整副本),总计为每一个索引10个碎片。
每一个Elasticsearch碎片都是Lucene索引,单个Lucene索引中能够包含最大数量的文档。从 LUCENE-5843开始,这个极限是2,147,483,519
(=Integer.MAX_VALUE - 128
)个文档,你可使用 _cat/shards API监视碎片大小。
有了这些,让咱们开始有趣的部分……