gpt4 book ai didi

node.js - Elasticsearch _bulk 更新问题给出 VersionConflictEngineException 消息

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:14 31 4
gpt4 key购买 nike

我在我的一个项目中使用elasticsearch。我在更新记录时遇到问题。我收到的错误消息是:-

{ _index: 'makes',
_type: 'make',
_id: '55b8cdbae36236490d00002a',
status: 409,
error: 'VersionConflictEngineException[[makes][0] [make][55b8cdbae36236490d00002a]: version conflict, current [168], provided [167]]' }

使用 ES 批量 api。我的应用程序位于 Node.js 中。

让我也分享我的代码:-

var conditions = [];
conditions.push({
update: {
_index: config.elasticSearch.index,
_type: config.elasticSearch.type,
_id: id
}
});
conditions.push({
doc: {
published: true
}
});
client.bulk({
body: conditions
}, function(err, resp) {
console.log(resp);
console.log(resp.items[0].update);
return res.send({success: true, message: "Shows updated successful"})
});

以下是条件数组的值:

[ { update: 
{ _index: 'makes',
_type: 'make',
_id: '55b8cdbae36236490d00002a' } },
{ doc: { published: true } } ]

最佳答案

当您开始查询记录时,它会对该记录进行响应,包括该记录的版本。当你想更新它,但在它之前,它已经被另一个更新了,数据库中的记录的版本比客户端认为的要高。发生这种情况可能是因为某些操作仍在队列中,因此您获得了未处理的记录(因此版本较低)。发生这种情况时,请尝试 https://www.elastic.co/guide/en/elasticsearch/reference/1.6/indices-refresh.html :

curl -XPOST 'http://localhost:9200/{your_index}/_refresh'

然后再次调用您的方法

关于node.js - Elasticsearch _bulk 更新问题给出 VersionConflictEngineException 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31716310/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com