如何在Elasticsearch的client.bulk方法中设置retry_on_conflict参数
正确配置方法
retry_on_conflict属于bulk请求的查询参数,不能直接放在options顶级字段下,需要嵌套在query对象中配置,修改后的代码如下:
const options = { index: config.aws.es.index, body: bulkBody, query: { retry_on_conflict: 5 } }; client.bulk(options, (err, { body }) => { if (err) { reject(err); } else { resolve(body); } });
补充说明
如果你只需要给bulk中的部分update操作设置冲突重试规则,可以不用配置全局的query参数,改为在每个update操作的元数据行单独指定参数,对应的bulkBody结构示例:
const bulkBody = [ // update操作元数据行,单独指定重试次数 { update: { _id: "你的文档ID", retry_on_conflict: 3 } }, // update操作内容行 { doc: { 要更新的字段: "对应值" } }, // 其他批量操作 // ... ]
内容的提问来源于stack exchange,提问作者Muthukumar Marichamy
相关产品推荐
相关产品推荐

