ElasticSearch核心概念

1、索引 Index

ElaticSearch将数据存放在一个或多个索引当中。一个索引相当于一个数据库,里面存放用户文档数据。在底层,ElasticSearch实际上还是

使用Lucene完成读写数据的操作,ElasticSearch索引是由一个或多个Lucene索引组成,所以ES中的分片或副本实际上就是一个Lucene索引。

2、文档 Document

文档是ES中主要的实体,所有ES的查询都是基于存放在ES中文档资源的查询。每个文档都是由各种域(Field)组成,每个域(Field)有一个名

称和一个或多个值构成。实际上,从用户的角度看,一个ES文档就是一个JSON对象。

3、映射 Mapping

映射用于定义文档域的属性,这些属性包括分词器,字段类型,存储类型等。对于没有定义的字段类型的属性,ES可以自动通过其字段值进行

识别。

4、类型 Type

ES中每个文档必须有一个类型定义。这里的类型相当于数据库当中的表,类型定义了字段映射(类似数据库表结构),这样一来,每个索引可以包含多种文档类型,而每种文档类型定义一种映射关系。

5、节点 Node

ElasticSearch Server的一个实例称作一个节点,每个节点都知道所有文档所处的位置并能够将请求直接转发给拥有数据的节点。

【号外】:Master Node

集群启动后会将某个节点选为Master Node,Master Node主要负责管理集群中诸如创建或删除索引、从集群中添加或删除节点等集群范围的

改变,Master Node不会关心基于文档的改变或检索。

6、集群 Cluster

多个ES节点工作在一起组成一个集群。ES对于集群的支持几乎是无缝的,这也是ES重要的竞争优点之一。

7、分片 Shard

ES集群环境下是将索引数据打散存放在多个节点上的,所以每个节点实际存放了ES索引的一部分,而这部分索引本质上就是Lucene的物理索引,在ES中也称作“分片”,分片过程是ES自动执行并且对用户来说是可见,所以分片是基于索引的分片。在现在ES的版本1.3.1,每个索引分片数在创建时指定后不能改变。

8、副本 Replia

副本就是分片的一个拷贝,不仅能提高自身容灾,另外,请求量很大的情况下,副本可以分担主Shard压力,承担查询功能。副本个数还以在创

建完索引后灵活调整。

9、网关 Getway

ES会将各种集群状态信息、索引配置信息等全部持久存放在网关中。

10、路由 Routing

ES给每个文档建索引后,通过路由可以算出所查的文档处在哪个分片上,因为在建立索引之初使用公式:shard = hash(routting) % number_of_pr

imary_shards进行文档分配。routing值是一个任意的字符串,默认是文档的ID,通过人工指定就可以控制文档存放在哪个shard的位置了。

11、索引别名 Index Alias

索引别名相当于快捷方式或软链接,可以指向一个或多个索引,甚至可以指向带路由的分片。

12、近实时性 near realtime (nrt)

Elasticsearch是一个近实时性的搜索平台,所以对于刚建过的索引文件进行查询时需要一个轻微的等待时间(通常为1秒)。

你可能感兴趣的:(ElasticSearch核心概念)