ElasticSearch Shard

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: ElasticSearch 分片

Shard

为了适应数据量的增长,我们逐渐从单机演变到了集群,而分片可以理解为集群下的一个概念,可以想象一下,如果此时有一个场景,需要让你存储很多的数据到集群当中,你会怎么去设计它来保证一个集群本身的HA,那我们就可以引入分片的概念,通过将数据进行分而治之的处理,然后根据一定的算法保存到各个节点之下,这样既保证了性能又确保了所有的分片不会保存在一个节点下,并且满足了高可用的特性。在ES中shard的作用其实就是分割巨大的索引,让数据根据分片分配规则下发到集群下的各个节点,满足提高效率,让读写可以并行。


Primary Shard

字面意思也就是我们的主分片,当ES想要查询数据的时候就会路由到主分片,然后由各个主节点的主分片进行查询,召回搜索结果。当我们写入的时候,也会优先写入primary shard,再去写入副本分片,至于是否马上回调成功,那就要看具体的ES配置了,可以选择副本写入后再回调写入成功,或者是在主分片写入之后马上回调成功。


Replica Shard

字面意思也就是我们的副分片,用古人的一句老话来引用就是鸡蛋不要放在一个篮子里,通过replica shard的效果来对集群下的主分片数据进行备份操作,在高并发的情况下,也能够参与查询,减少主分片召回失败的机率。


Relation

索引和分片的关系图



一个索引下根据ES的版本不同,默认的主副分片数也不同,我们也可以通过官方文档中查看默认分片数了解或者设置索引创建模板或者设置单个索引来改变初始化的分片数。但在本文中我们需要明确索引和分片的关系.我们都知道ES的底层是Lucene,但是很少有人知道其实每一个分片就是一个独立的lucene搜索引擎,而lucene又是由很多的segement组成的,而segement是在写入的时候合并出来的,ES在每次写入执行refresh的时候都会生成一个新的分段,而segement是由Term组合而成的,这个Term可以理解为最初的词经过分词器以及一系列加工处理后的产物。


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
API 索引
Elasticsearch Index Shard Allocation 索引分片分配策略
Elasticsearch Index Shard Allocation 索引分片分配策略
342 1
白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数
白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数
130 0
|
存储 监控 Java
Elasticsearch索引监控之Indices Segments API与Indices Shard Stores
Elasticsearch索引监控之Indices Segments API与Indices Shard Stores
Elasticsearch索引监控之Indices Segments API与Indices Shard Stores
|
存储 Linux API
【Elastic Engineering】Elasticsearch:运用 shard 过滤器来控制索引分配给哪个节点
Elasticsearch:运用 shard 过滤器来控制索引分配给哪个节点
290 0
【Elastic Engineering】Elasticsearch:运用 shard 过滤器来控制索引分配给哪个节点
|
API 索引
【Elastic Engineering】Elasticsearch:通过 shrink API 减少 shard 数量来缩小 Elasticsearch 索引
Elasticsearch:通过 shrink API 减少 shard 数量来缩小 Elasticsearch 索引
352 0
|
存储 Linux API
【最佳实践】Elasticsearch 运用 shard filtering 实现冷热节点索引分配
在 Elasticsearch 的部署中,由于 node(节点)能力不同,会用来做不同的用途:运算能力较强的节点可以用来做 indexing(建立索引表格)的工作,而那些能力较差一点的节点,我们可以用来做搜索用途,这就是我们常说的 hot / warm 架构。
1514 0
【最佳实践】Elasticsearch 运用 shard filtering 实现冷热节点索引分配