Elasticsearch入门

Elasticsearch基本概念

Elasticsearch

Elasticsearch是一个开源的可高度扩展的全文搜索和分析引擎。它能够近乎实时的存储、查询和分析数据。基于Lucene的分布式引擎。node

Cluster

一个cluster能够包含一个或多个node,这些nodes共同维护全部的数据并提供联合索引和搜索功能。一个cluster能够被一个默认名字为elasticsearch的标示符所肯定,一个node不能同时存在于两个cluster中。网络

Node

node是cluster中的一个节点,它用于存储数据,参与集群的索引和搜索功能。跟cluster同样,node在启动的时候,会由一串随机的Marvel字符来做为此node的默认名字。elasticsearch

能够把一个node加入到一个指定名字的cluster中。默认状况下,node会加入到一个名为elasticsearch的cluster中。也就是说,若是在网络中启动若干个node,并假设它们能够发现彼此,则这些node将会自动加入一个名为elasticsearch的cluster。分布式

若是只启动一个node,那么这个node会造成一个默认名为elasticsearch的cluster。code

Index

index是有相同特征的document的集合。例如,能够为用户数据创建一个index,为产品数据创建另一个index。一个index可被一个字符串(必须是小写字母)所标识,能够经过这个标识引用index来查询、更新、删除其中的document。一个cluster中能够建立多个index。索引

Type

在一个index中,能够定义一个或多个type。type是index的一个逻辑分区,语义彻底取决于你。能够为一组具备共同字段的document定义一个type。假设你运行了一个博客平台并将全部的数据存在于一个index中,在此index中,能够为用户数据定义一个type,为博客数据定义一个type,为评论数据定义另一个type。字符串

Document

document是可以被索引的信息的基本单元,例如一个document能够存放一条客户信息,另一个document存放一条产品信息。docuemnt中的数据是以JSON的形式展示的。一个index/type能够存储多个document。博客

注意:尽管一个document在物理上是驻留在index中,事实上一个document必须被索引到index中的一个type上产品

document是不可变的,它不能被修改只能被替换。ast

Shards/Replicas

elasticsearch能够把一个index分红多片,每片称为一个shard。当建立index时,能够指定shard的数量,一个shard能够存放在cluster中的任意node上。为了防止某些缘由而致使一个node/shard出现故障,elasticsearch容许保留shard的一个或多个副本,这个副本称为replica shard

注意:replica shard不能跟它的原始shard存放在一个node上。

总得来讲,每一个index可被分红多个shards。每一个index能够被备份0次(无replicas)或屡次。备份index后,每一个index会包含primary shardsreplica shards。在建立index时,能够设置每一个index的shards和replicas的数量。一旦index被建立,不能再修改primary shards的数量,但能够随时动态修改replicas的数量。

默认状况下,若是你的cluster有两个node,每一个index会被分配5个primary shards和5个replica shards(1个完整副本)。

相关文章
相关标签/搜索