gpt4 book ai didi

elasticsearch - version_conflict_engine_exception 与多个 _update_by_query

转载 作者:行者123 更新时间:2023-12-02 22:10:14 30 4
gpt4 key购买 nike

我遇到的情况是 version_conflict_engine_exception .我有守护进程,它不断地将数据更新到elasticsearch。我正在使用 _updat_by_query .这是示例调用:

curl -XPOST 'localhost:9200/my_index/my_type/_update_by_query?pretty' -H 'Content-Type: application/json' -d '
{
"query":{
"term":{
"userid":1234
}
},
"script":{
"lang":"painless",
"inline":"if (ctx._source.containsKey(\"newfield\")) {ctx._source.newfiled.add(params.value)} else {ctx._source.newfield = [params.value]}",
"params":{
"value":{"new":"value"}
}
}
}'

每当我有相同的用户 ID(在 query.terms 上)时,就会有多个更新查询一个接一个地命中,它给我错误 version_conflict_engine_exception .我知道这是因为版本冲突,但我们如何克服我经常更新查询的问题。我也没有找到任何 bulk _update_by_query 的选项.我收到以下错误:
{
"took": 1,
"timed_out": false,
"total": 1,
"updated": 0,
"deleted": 0,
"batches": 1,
"version_conflicts": 1,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"failures": [{
"index": "my_index",
"type": "my_type",
"id": "Gc-_SWIBUzg1_4kxJ5uD",
"cause": {
"type": "version_conflict_engine_exception",
"reason": "[logs][Gc-_SWIBUzg1_4kxJ5uD]: version conflict, current version [2] is different than the one provided [1]",
"index_uuid": "dbtt5uS9R3ClcPt6Oar1MQ",
"shard": "3",
"index": "my_index"
},
"status": 409
}]
}

最佳答案

目前这是 Elasticsearch 中的预期行为。您可以尝试使用冲突和刷新参数来解决此问题。

您可以使用

curl -XPOST 'localhost:9200/my_index/my_type/_update_by_query?conflicts=proceed&refresh=wait_for

正如这里提到的。希望有帮助!

关于elasticsearch - version_conflict_engine_exception 与多个 _update_by_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49575392/

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