- 文档首页
云搜索服务
产品简介
云搜索服务内核
内核增强
Bulk 定向路由
Bulk 定向路由
采用 bulk 写入数据时,实例写入请求将根据默认路由规则划分到不同分片执行写入。在实例节点数较多、索引包含的分片数较多的场景中容易出现写入长尾效应,将导致整个 bulk 请求响应缓慢堆积。
您可以通过指定配置项 index.shard_routing.enabled 开启 bulk 定向路由,开启后可以将批写请求随机指定单个 shard,从而避免写入长尾效应。
配置项 index.shard_routing.enabled 的默认值为 false,表示使用默认路由规则,即默认采用_id作为单个文档写入的 routing;设置为 true,则表示开启 bulk 定向路由,可以避免写入长尾效应。
在实例节点数较多、索引包含的分片数较多的场景中开启 bulk 定向路由,能提升消费速率、降低集群 Load、降低写入拒绝次数。
- 目前仅支持在 2023 年 10 月以后创建的 Elasticsearch 7.10.2 版本实例和 OpenSearch 2.9.0 版本实例支持开启 bulk 定向路由。
- 只有写入的数据不带主键,配置项 index.shard_routing.enabled 才有效果。
- 开启 bulk 定向路由后,无法直接根据 _id 获取 doc 信息。
- 开启 bulk 定向路由后,不支持 deletebyquery 和 updatebyquery 功能。
您可以在创建索引时指定 index.shard_routing.enabled 配置项,也可以在索引创建后动态更新 index.shard_routing.enabled 配置项。
- 开启写入自适应优化后,为何无法直接根据 _id 获取文档信息?
- 开启写入自适应优化后,bulk 写入过程中会自动选择性能更好的分片,_id 和分片间不再有固定映射关系。此时根据 _id 获取文档必须携带正确的 routing 才能获取单条原始的文档信息,routing 可以通过普通 query 查询获取。
- 仅满足特定要求的实例才支持开启写入自适应优化功能,具体要求请参见功能限制。
- 若您在使用过程中遇到其他问题,请提交工单联系技术支持解决。
最近更新时间:2026.06.17 16:05:22