Elasticsearch核心概念整理
- Near Realtime:近实时的,从写入数据到数据可以被搜到有一个小延迟(大概1秒);基于es执行搜索和分析可以达到秒级
- Cluster:集群,包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认elasticsearch)来决定的
- Node:节点,集群中的一个节点,节点也有名称(默认是随机分配的),节点名称很重要,和运维管理有关系,默认节点会去加入一个名称为elasticsearch的集群,如果直接启动一堆的节点,那么这些节点就好自动组成一个elasticsearch集群,当然的话一个节点也是可以组成一个集群的
- Document和Field:文档,es中的最小数据单元,一个document可以是一条商品数据,一条客户数据,通常用JSON数据结构表示,每个index下的type中可以存储刀哥document,一个document里面有多个field,每个field就是一个数据字段
- Index:索引,包含一类相似结构的文档数据
- Type:类型,每个索引里可以有一个或多个的type,type是index中的逻辑分类,一个type下的document,都有相同的filed,比如有个索引,有用户数据type
- shard:单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多的数据,让搜索和分析等操作分布到多台的服务器中去执行,提升吞吐量和性能,每个shard都是一个lucene index
- replica:任何一个服务器随时可能出现故障或者宕机,此时shard就可能丢失,因此可以为每个shard创建多个replica副本。replica可以在shanrd故障时候提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能更改,默认为5),replica shard(随时可以修改数量,默认为1),默认每个所索引10个shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器
- elasticsearch和数据库对比:Document -- 相当于数据库的行 Type -- 数据库的表 Index -- 库