ElasticSearch系列文章一 核心概念

ElasticSearch 核心概念

索引(index) 类型(Type) 文档(Document) 字段 (Fields)

类比传统的关系型数据库

Relational DBElasticSearch
数据库(database)索引(index)
表(table)类型(type)
行(rows)文档(document)
字段(columns)字段 (fields)

ElasticSearch集群中可以包含多个索引,每个索引中包含多个类型,每个类型下包含多个文档,每个文档中又包含了多个字段。

在ElasticSearch 7.x版本去除了type的概念。

节点(node)

一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同cluster.name配置的节点组成, 它们共同承担数据和负载的压力。

ES集群中的节点有三种不同的类型:

  • 主节点:负责管理集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等。 主节点并不需要涉及到文档级别的变更和搜索等操作。可以通过属性node.master进行设置。
  • 数据节点:存储数据和其对应的倒排索引。默认每一个节点都是数据节点(包括主节点),可以通过node.data属性进行设置。
  • 协调节点:如果node.master和node.data属性均为false,则此节点称为协调节点,用来响应客户请求,均衡每个节点的负载。

分片(shard)

  • shard = primary shard(主分片)

  • replica = replica shard(副本节点)

一个索引中的数据保存在多个分片中,相当于水平分表。ES实际上就是利用分片来实现分布式的,分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。 当你的集群规模扩大或者缩小时, ES会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。

一个分片可以是主分片或者副本分片。 索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。一个副本分片只是一个主分片的拷贝。副本分片作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务。

在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。默认情况下,一个索引会有5个主分片,而其副本可以有任意数量。

倒排索引 Inverted index

传统数据库一般都是以文档id作为索引,以文档内容作为记录,这种也就是正排索引。倒排索引指的是以单词或记录作为索引,将文档id作为记录。这样更方便通过单词或记录查找所在的文档。

文档id文档内容
1php is the best language in the world
2java is the best language in the world
3C# is the best language in the world

正排索引 根据文档id

倒排索引

单词文档ids
php1
java2
C#3
is1,2,3
the1,2,3
best1,2,3
language1,2,3
in1,2,3
world1,2,3
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值