Elasticsearch 分片和副本搜索性能
Posted
技术标签:
【中文标题】Elasticsearch 分片和副本搜索性能【英文标题】:Elasticsearch shard and replica search performance 【发布时间】:2020-05-22 14:07:38 【问题描述】:我试图了解搜索查询是如何在主分片和副本分片之间划分的。 我不清楚为什么有人说副本的好处之一是提高搜索性能。但据我了解,主分片可以像副本一样提供搜索查询。如果是这样,我们假设我们有 2 个节点的 ES 集群,并且查询是只读的。具有 10 个分片的索引是否可以与具有 5 个分片和 1 个副本的索引这样的性能一起使用?
【问题讨论】:
【参考方案1】:首先你需要了解什么是主分片和副本分片。
主分片是您首先写入请求的位置,然后根据复制因子复制到其副本分片,Elasticsearch 将为主分片创建 n 个副本分片。
现在一个文档始终是单个主分片的一部分,但其副本存在于所有副本分片中。
现在,当您搜索时,您可以在其主分片(仅一个主副本)或任何一个副本分片中进行搜索。并且这些副本可以存在于集群中的不同节点上(Elasticsearch 是一个分布式系统)。并且为了提高 Elasticsearch 可以查询的性能取决于负载和其他各种因素,任何包含副本的分片,这解释了为什么拥有副本会提高搜索性能以及为什么您可以从副本中进行搜索。
【讨论】:
以上是关于Elasticsearch 分片和副本搜索性能的主要内容,如果未能解决你的问题,请参考以下文章