我有一个调用ES的updateByQuery接口的nodejs应用,如下所示:
elasticsearchClient.updateByQuery({
index: 'logstash-dev-2019.05.14',
body: {
"query": {
"ids": {
"values": alert.esId
}
},
"script": {
"source": `ctx._source.alertObject.violation_status = 'closed'`,
"lang": "painless"
}
}
});
但是,我偶尔也会遇到version_conflict_engine_exception
。我想通过使用documentation中提到的conflict=proceed
来处理冲突。我该在哪里把它放到我的更新呼叫中呢?
发布于 2019-05-15 08:42:35
您可以使用docs中提供的querystring
对象,请滚动到链接的末尾。
elasticsearchClient.updateByQuery({
index: 'logstash-dev-2019.05.14',
querystring: {
"conflict": "proceed"
},
body: {
"query": {
"ids": {
"values": alert.esId
}
},
"script": {
"source": `ctx._source.alertObject.violation_status = 'closed'`,
"lang": "painless"
}
}
});
https://stackoverflow.com/questions/56144722
复制