我试图了解搜索查询是如何区分主碎片和副本碎片的。我不清楚为什么有人说复制的好处之一是提高搜索性能。但据我所知,主碎片可以像副本一样提供搜索查询。如果是这样的话,让我们假设我们有带有两个节点的ES集群,并且查询是只读的。带10个碎片的索引是否具有5个碎片索引和1个副本索引等性能?
发布于 2020-05-22 16:09:38
首先,您需要了解什么是主碎片和副本碎片。
主碎片是您首先编写请求的地方,然后再复制到它的副本碎片,基于复制因子Elasticsearch将为一个主碎片创建n个副本碎片。
现在一个文档总是一个主碎片的一部分,但是它的副本存在于所有的副本碎片中.
现在,当您搜索时,您可以搜索它的主碎片(只有一个主副本)或任何一个副本碎片。这些副本可以出现在集群中的不同节点上(Elasticsearch是一个分布式系统)。而为了提高性能,Elasticsearch可以查询取决于负载和其他各种因素--任何包含复制的碎片,这就解释了为什么拥有副本可以提高搜索性能,以及为什么可以从副本中进行搜索。
https://stackoverflow.com/questions/61956866
复制相似问题