You need to enable JavaScript to run this app.
文档中心
云搜索服务

云搜索服务

复制全文
下载 pdf
内核增强
Bulk 定向路由
复制全文
下载 pdf
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 功能。​
开启 bulk 定向路由​
您可以在创建索引时指定 index.shard_routing.enabled 配置项,也可以在索引创建后动态更新 index.shard_routing.enabled 配置项。​
  • 创建索引时开启 bulk 定向路由​
  • ​
    PUT <index-name>​
    {​
    "settings": { ​
    "index.shard_routing.enabled": true​
    } ​
    }​
    ​
  • 动态更新 bulk 定向路由配置​
  • ​
    PUT <index-name>/_settings​
    {​
    "index.shard_routing.enabled": true​
    }​
    ​
常见问题​
  • 开启写入自适应优化后,为何无法直接根据 _id 获取文档信息?​
  • 开启写入自适应优化后,bulk 写入过程中会自动选择性能更好的分片,_id 和分片间不再有固定映射关系。此时根据 _id 获取文档必须携带正确的 routing 才能获取单条原始的文档信息,routing 可以通过普通 query 查询获取。​
  • 为什么开启写入自适应优化功能失败?​
  • 仅满足特定要求的实例才支持开启写入自适应优化功能,具体要求请参见功能限制。​
  • 若您在使用过程中遇到其他问题,请提交工单联系技术支持解决。​
​
最近更新时间:2026.06.17 16:05:22
这个页面对您有帮助吗?
有用
有用
无用
无用