ElasticSearch核心概念

接近实时(NRT)

ES是一个接近实时的搜索平台,这意味着从索引一个文档直到这个文档能搜索到由一个轻微的延迟(1秒)。

集群(Cluster)

一个集群是由一个或多个节点组织在一起,共同持有整个数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是 elasticsearch。一个节点只能通过指定的某个集群的名字来加入集群。

4933701-02abbca3495fab0e.png
集群

节点(Node)

一个节点是集群中一个服务器,作为集群一部分,它存储数据参与集群索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的。默认情况下,这个名字是漫威角色的名字,这个名字会在启动时赋予节点,这个名字对于管理工作很重要,因为在管理过程中,你会去确定网络中那些服务对应于ES集群中那些节点。

一个节点可通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做 elasticsearch的集群中,这意味着若你在网络中启动若干节点,并假定他们能相互发现彼此,它们将会自动地形成并加入到一个叫做 elasticsearch的集群中。

在一个集群中只要你想可拥有任意多个节点,若当前你的网络中没有运行任何ES节点,此时启动一个节点会默认并加入一个叫做 elasticsearch 的集群。

索引(index)

一个索引就是一个 拥有哦积分相似特征的文档的集合,比如说你可以由一个客户数据的索引,另一个产品目录的索引还有一个订单数据的索引。
一个索引由一个名字来标识(必须全部都是小写字母),当我们要对对应于这个索引中的文儿当进行索引、搜索、更新、删除的时候,都要使用这个名字。在一个集群中如你想可定义任意多个索引。

4933701-078c23a16590fd7e.png
索引

类型(type)

在一个索引中可定义一种或多种类型,一个类型是你的索引的一个逻辑上的分类或分区,其语义完全由你来定。通常会为具有一组共同字段的文档定义一个类型。比如你运营的一个博客平台并将你所有的数据存储到一个索引中,在这个索引中你可为用户数据定义一个类型,为博客数据定义另一个类型,当然也可为评论定义另一个类型。

文档(document)

一个文档是一个可被索引的基础信息单元,比如你可拥有某个客户的文档,某个产品的一个文档,当然也可拥有某个订单的一个文档。文档以JSON格式来表示,而JSON是一个到处存在的互联网交换格式。

在一个index/type里面,只要你想可存储任意多的文档。注意尽管一个文档物理上存在于一个索引之中,文档必须被索引赋予一个索引的type。