(一)ElasticSearch-Basic Concepts

        之前项目需要零零碎碎学习了一些ElasticSearch的知识,但是最近项目遇到瓶颈,搜索不准确,速度不高!需要进一步优化!为此,重新好好看看ElasticSearch的知识!



1.cluster 集群
由许多节点node组合而成,区分唯一的集群是根据集群的名字(unique name)来区分的!
集群可以使用以下三种阶段logging-dev,logging-stage,logging-prod对开发,分段,生产集群几个阶段!


2.Node 节点
一个node就是一个单一的服务,可以存储数据,并且参与到集群中,可以索引和查找数据,区分不同的节点是根据节点的唯一名称(unique name),默认是系统生成的UUID,可以自己更改配置文件
默认Node节点加入到一个名称的为elasticsearch 集群,启动一个节点,在网络上没有发现相应的集群以后,会自动成一个新集群

3.Index 索引
类似索引的集合,区分索引的唯一性是根据unique name,索引的名字必须 都是小写字母


4.Type 文档类型
一个Type可以 用来逻辑区分.分区索引存储在同一个索引中的不同类型的数据(document)


5.Document 文档
最基本的可以被索引的单元,JSON格式的数据,在一个index下的type类型下,你可以存储多个document


6.Shards  & Replicas 分区/副本分区
一个索引可能存储大量数据而超过单一节点的计算机硬件能力,Shards(分区),就可以把索引分配到多个分区(切片),缓解单一节点的压力,每个节点可以托管在任意节点,而不必仅仅在一个节点上,造成单一节点的压力
Shards重要的两个原因
1.可以均衡分配索引的体积到和扩展索引的大小
2.可以分发请到多个shards上,并行处理,提高系统性能和吞吐量
3.可以降低系统故障风险,一个切片故障,不影响其他的运行
ElasticSearch给我们智能的分配切片,做为用户我们是透明的,不许关系具体的分配规则


ELasticSearch会为你的切片(shards)分配一些副本切片(replica shards)(默认一个index有5个primary shards,一个primary shards有一个replica shards),当然每个切片的副本数量你是可以自己配置的
1.replicas副本不会和原始Shards在同一个节点上,防止节点障碍一起挂了
2.可以提高搜索速度,,搜索同样会在副本replica shards上进行


总结:每个index可以分配多个shard,可以复制零个或者更多的replica shards,可以使用默认的 ,也可以在创建索引的时候指定数量!在创建索引以后你可以更改副本的数量,但是主分区的数量不可以更改!




提示:一个ElasticSearch shards底层其实是一个Lucene index


_cat/shards

可以查看分区数量


上图中可以看到有5个主分区,每个主分区有一个副本

猜你喜欢

转载自blog.csdn.net/QWERTY1994/article/details/80652583