在 elasticsearch 中路由到索引分区

问题描述 投票:0回答:0

根据elasticsearch的documentation,在创建索引时可以在索引级别设置

routing_partition_size
。这允许我们将自定义路由值下的文档索引到分片的子集,这允许我们以每个请求搜索更多分片为代价跨分片分布数据。或者,如果未指定
routing_partition_size
,我们将面临最终导致集群不平衡的风险,因为路由值下的每个文档仅索引到单个分片。

我的问题是:为什么设置只允许在索引级别配置?例如,考虑具有文档集合的场景,其中每个文档代表属于特定供应商的库存中的产品。

我们使用 supplier_code 作为自定义 _routing 值来索引每个文档。大多数供应商的库存足够少,因此将

small
供应商下的所有文档存储在一个分片中是合理的(即不使用 routing_partition_size)

然而,有少数大型供应商拥有足够充足的库存。我们想将

large
供应商下的文档索引到分片的子集(即使用 routing_partition_size)。这将防止某些分片成为大型供应商搜索查询的瓶颈。

以elasticsearch的当前配置,我只能决定在索引级别使用routing_partition_size,这意味着我也需要为小卖家搜索多个分片(这并不理想)。

elasticsearch elastic-stack
© www.soinside.com 2019 - 2024. All rights reserved.