ES
Elasticsearch是一个分布式搜索和分析引擎,可以用于全文搜索、结构化检索和分析,并能将这三者结合起来。ES基于Lucene开发,现在是使用最广的开源搜索引擎之一。
54467F5D-E4F7-420D-964A-55C3ADFBB8E8.png
- node(节点):node是一个运行着的Elasticsearch实例,一个node就是一个单独的server。
- cluster(集群):在ES中,对用户来说集群是很透明的。你只需要指定一个集群的名字(默认是elasticsearch),启动的时候,凡是集群是这个名字的,都会默认加入到一个集群中。你不需要做任何操作,选取或者管理都是自动完成的,对用户来说,仅仅是一个名字而已!
- Index(索引)
索引是一类文档的集合,所有的操作比如索引(索引数据)、搜索、分析都是基于索引完成的。在一个集群中,可以定义任意数量的索引。类比关系型数据库里的DB。 - Type(类型)
类型可以理解成一个索引的逻辑分区,用于识别不同的文档字段信息的集合。类比关系型数据库里的表。 - Document(文档)
文档是存储数据信息的基本单元。类比关系型数据库里的field,每个field都有自己的字段类型。 - field
类比关系型数据库里的field,每个filed都有自己的字段类型。 - mappIng
类比关系型数据库中的schema概念,mapping定义了index中的type。mapping可以显示的定义,也可以在document被索引时自动生成,如果有新的field,Elasticsearch会自动推测出filed的type并加到mapping中。 - shard(索引动词)
是一个Lucene实例。Elasticsearch基于Lucene,shard是一个Lucene实例,被Elasticsearch自动管理。之前提到,index是一个逻辑命名空间,shard是具体的物理概念。建索引、查询等都是具体的shard在工作。shard包括primary shard和replica shard,写数据时,先写到primary shard,然后,同步到replica shard,查询时,primary 和 replica 充当相同的作用。replica shard 可以有多份,也可以没有,replica shard的存在有两个作用,一是容灾,如果primary shard挂了,数据也不会丢失,集群仍然能正常工作;二是提高性能,因为replica和primary shard都能处理查询。另外,如上图右侧红框所示,shard数和replica数都可以设置,但是shard数只能在建立index时设置,后期不能更改,但是replica数可以随时更改。
网友评论