带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(4)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(4)

《Elastic Stack 实战手册》——三、产品能力——3.3.基础篇——3.3.2.专有名词解释(3) https://developer.aliyun.com/article/1231572


有两种类型的分片:Primary shard 和 Replica shard。

 

l Primary shard: 每个文档都存储在一个Primary shard。 索引文档时,它首先在 Primary shard上编制索引,然后在此分片的所有副本上(replica)编制索引。索引可以包含一个或多个主分片。 此数字确定索引相对于索引数据大小的可伸缩性。 创建索引后,无法更改索引中的主分片数。

l Replica shard: 每个主分片可以具有零个或多个副本。 副本是主分片的副本,有两个目的:

增加故障转移:如果主要故障,可以将副本分片提升为主分片

提高性能:get 和 search 请求可以由主 shard 或副本 shard 处理。

 

从上面的公式我们也可以看出来,我们的 shard 数目是不可以动态修改的,否则之后也找不到相应的 shard 号码了。必须指出的是,replica 的数目是可以动态修改的。

 

Shard

 

由于 Elasticsearch 是一个分布式搜索引擎,因此索引通常会拆分为分布在多个节点上的称为分片的元素。 Elasticsearch 自动管理这些分片的排列。 它还根据需要重新平衡分片,因此用户无需担心细节。


默认情况下,每个主分片都有一个副本,但可以在现有索引上动态更改副本数。 永远不会在与其主分片相同的节点上启动副本分片。

 

下面的图表示的是一个 index 有5个 shard 及1个 replica

image.png

这些 Shard 分布于不同的物理机器上:

image.png

我们可以为每个 Index 设置相应的 Shard 数值:


curl -XPUT http://localhost:9200/another_user?pretty -H 'Content-Type: application/json' -d '
{
    "settings" : {
        "index.number_of_shards" : 2,
        "index.number_of_replicas" : 1
    }
}

比如在上面的 REST 接口中,我们为 another_user 这个 index 设置了2个 shards,并且有一个 replica。一旦设置好 primary shard 的数量,我们就不可以修改了。这是因为 Elastics-earch 会依据每个 document 的 id 及 primary shard 的数量来把相应的 document 分配到相应的 shard 中。如果这个数量以后修改的话,那么每次搜索的时候,可能会找不到相应的shard。

 

我们可以通过如下的接口来查看我们的 index 中的设置:

 

curl -XGET http://localhost:9200/twitter/_settings?pretty 

上面我们可以得到 twitter index 的设置信息:


{
  "twitter" : {
    "settings" : {
      "index" : {
        "creation_date" : "1565618906830",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "rwgT8ppWR3aiXKsMHaSx-w",
        "version" : {
          "created" : "7030099"
        },
        "provided_name" : "twitter"
      }
    }
  }
}

《Elastic Stack 实战手册》——三、产品能力——3.3.基础篇——3.3.2.专有名词解释(5) https://developer.aliyun.com/article/1231570

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
安全 API 数据安全/隐私保护
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(2)
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(2)
110 0
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(2)
|
安全 应用服务中间件 网络安全
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(1)
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(1)
110 0
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(1)
|
存储 定位技术 数据库
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(3)
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(3)
132 0
|
JSON 数据库 数据格式
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(2)
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(2)
124 0
|
应用服务中间件 nginx
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(1)
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(1)
117 0
|
Ubuntu 物联网 大数据
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(5)
带你读《Elastic Stack 实战手册》之7:——3.3.2.专有名词解释(5)
102 0
|
安全 索引
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(4)
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(4)
|
安全 Ubuntu 物联网
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(5)
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(5)
103 0
|
安全
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(3)
带你读《Elastic Stack 实战手册》之12:——3.4.1.5.配置集群安全访问(3)
105 0
|
运维 网络协议 API
带你读《Elastic Stack 实战手册》之42:——3.5.1.跨集群操作(1)
带你读《Elastic Stack 实战手册》之42:——3.5.1.跨集群操作(1)
135 0