Elasticsearch是一个分布式全文检索引擎
接近实时(NRT)
ES是一个接近实时的搜索平台,因此搜索一个文档通常只有一个1s的延迟
cluster
一个ES集群由一个或多个节点组成,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中
node
一个节点就是集群中的一个服务器,默认情况下
index
一个索引就是一个拥有相似特征的文档集合,类似于数据库
type
类型是索引内部的逻辑分区
在 Elasticsearch 5.X 版本中,一个 index 下可以创建多个 type
在 Elasticsearch 6.X 版本中,一个 index 下只能存在一个 type
在 Elasticsearch 7.X 版本中,直接去除了 type 的概念,就是说 index 不再会有 type
因为ES搜索引擎是基于 Lucene 的, 而 Lucene 的全文检索功能之所以快,是因为 倒序索引 的存在。而这种 倒序索引 的生成是基于 index 的,而并非 type。多个type 反而会减慢搜索的速度
document
文档是可被索引的基础信息单元,文档必须存放在索引里的type下
shards
es通过将索引划分成一份或者多份来实现分布式存储,每一份就叫做分片,相当于一杯水用多个被子装。分片会平均分配到不同的节点上。当查询时,每个分片都会执行
replica
es默认为每一个索引创建5个主分片,一个主分片对应一个副分片,因此一共有10个分片,主分片和副分片不会出现在同一个节点上,防止数据丢失,还可以提高查询效率,因为可以同时查询主分片和副本分片
eg:
如果3个节点,3个主分片,一个主分片对应一个副本分片,那么索引将会被平均分布在3个主分片上,那么分布情况将会是
node0(master):P0、R2
node1:P1、R0
node2:P2、R1
集群的状态
-green,所有主分片和副本分片准备就绪,即使有一台机器挂了,数据不会丢失
-yellow,所有主分片准备就绪,但至少有一个副本分片没有准备就绪
-red,至少有一个主分片没有准备就绪,存在数据丢失问题
field
类似表里的数据列,字段名
mapping
字段中的类型
索引结构