You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch切片数量如何依据分片数量进行计算?

Elasticsearch 7.13.4 搜索切片与分片对应规则

ES 7.13.4版本存在官方明确的切片(即搜索slice功能)和分片映射规则,无通用的固定计算公式,具体逻辑如下:

官方默认匹配逻辑:slice_id = 分片哈希值 % 切片总数,同个分片内的文档只会分配到同一个切片,不会出现跨分片重复或漏分配的情况。

  • 无自定义路由的普通索引:切片的最大有效值等于索引的主分片总数。如果设置的切片数超过主分片数,超出部分的切片会直接返回空结果,无有效数据。
  • 指定routing参数的查询场景:切片的最大有效值等于该routing值路由到的主分片数量。例如你指定的路由值仅会落到2个主分片上,设置超过2的切片数就会产生空切片。

官方推荐切片取值原则

  • 常规大批量查询(如全量导出、数据遍历)场景,建议设置切片数等于主分片总数,此时每个切片对应1个主分片,查询性能最优,无空切片浪费资源。
  • 单分片数据量过大(超过20GB)的场景,可设置切片数为主分片数的整数倍,单分片会被拆分为多个切片并行处理,建议控制单个切片返回的结果大小不超过2GB,避免节点内存溢出。
  • 禁止设置切片数超过主分片数的10倍,否则会大幅提升查询的CPU和内存开销,反而拖慢整体查询效率。

内容的提问来源于stack exchange,提问作者mskanyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:57:01