下面阐述一下ES当中的一些常见词语含义:
集群
集群由一个或多个节点组成,对外提供服务,索引和搜索功能。在所有的节点中,一个集群有一个唯一的名称默认为“ElasticSearch”,此名称很重要,因为每个节点只能是集群的一部分,当该节点被设置为相同的集群名称时,就会自动加入集群。当需要多个集群的时候,要确保每个集群的名称不能重复,否则,节点可能会加入错误的集群。
节点
一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的
索引
一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。
类型
在索引中,可以定义一个或多个类型,类型是索引的逻辑分区,相当于数据库中的表。
文档
文档是存储在ES中的一个JSON字符串,相当于数据库中表的一行,ES是一个非结构化的数据库,每一个文档可以有不同的字段,并且有一个唯一的标识符
字段
类似关系型数据库的某一列,这是ES数据存储的最小单位
分片
每个索引都有多个分片, 每个分片都是一个luncene,索引分片的好处: 分摊索引的搜索压力, 分片还支持水平的拓展和拆分以及分布式的操作, 可以提高搜索和其他处理的效率
备份
拷贝一个分片就完成了分片的备份,备份的好处: 当主分片失败或者挂掉, 备份就可以代替分片进行操作, 进而提高了es的可用性, 备份的分片还可以进行搜索操作, 以分摊搜索的压力。ES在创建索引时, 默认创建5个分片, 一份备份, 可以修改, 分片的数量只能在创建索引的时候指定, 索引创建后就不能修改分片的数量了, 而备份是可以动态修改的
数据库与ES对比图:
注:在ES6.0.0及更高的版本中,创建的索引只能包含一个映射类型。在6.0.0以下的版本中创建的一个索引映射多个类型的索引在6.0.0版本中继续发挥作用,但是将在7.0.0中完全删除。
ES特性
速度快、易扩展、弹性、灵活、操作简单、多语言客户端、X-Pack、hadoop/spark强强联手、开箱即用。
分布式:横向扩展非常灵活
全文检索:基于lucene的强大的全文检索能力;
近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析
高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据
模式***:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。
RESTful API:JSON + HTTP
参考:
官网:
https://www.elastic.co/cn/products/elasticsearch
https://www.elastic.co