ElasticSearch Shard

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 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可以理解为最初的词经过分词器以及一系列加工处理后的产物。


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
3月前
|
API 索引
Elasticsearch Index Shard Allocation 索引分片分配策略
Elasticsearch Index Shard Allocation 索引分片分配策略
78 1
|
12月前
白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数
白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数
48 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 过滤器来控制索引分配给哪个节点
179 0
【Elastic Engineering】Elasticsearch:运用 shard 过滤器来控制索引分配给哪个节点
|
API 索引
【Elastic Engineering】Elasticsearch:通过 shrink API 减少 shard 数量来缩小 Elasticsearch 索引
Elasticsearch:通过 shrink API 减少 shard 数量来缩小 Elasticsearch 索引
245 0
|
存储 固态存储 Linux
【最佳实践】Elasticsearch 运用 shard filtering 实现冷热节点索引分配
在 Elasticsearch 的部署中,由于 node(节点)能力不同,会用来做不同的用途:运算能力较强的节点可以用来做 indexing(建立索引表格)的工作,而那些能力较差一点的节点,我们可以用来做搜索用途,这就是我们常说的 hot / warm 架构。
1374 0
【最佳实践】Elasticsearch 运用 shard filtering 实现冷热节点索引分配