Исключение конфликта версий ElasticSearch при удалении по запросу
Я использую ElasticSearch в своем приложении Laravel, и недавно я реализовал возможность удаления документов из индекса эластичного поиска. Проблема в том, что я продолжаю получать
version_conflict_engine_exception
ошибка.
Мой код выглядит так:
$params = [
'index' => 'invoices',
'body' => [
'query' => [
'bool' => [
'must' => [
['term' => ['user_id' => $userId]]
]
]
]
],
'refresh' => true,
];
Elasticsearch::deleteByQuery($params);
После прочтения официальных документов я понял, что
'conflicts' => 'proceed'
можно добавить параметр, и это должно решить проблему. Но мне кажется, что я только скрываю проблему, а не решаю ее. Я точно знаю, что с этим документом одновременно не выполняется никаких других операций, поэтому нет причин для изменения версии, но эта ошибка продолжает появляться.
{
"took": 1189,
"timed_out": false,
"total": 47,
"deleted": 0,
"batches": 1,
"version_conflicts": 47,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1,
"throttled_until_millis": 0,
"failures": {
"index": "invoices",
"type": "_doc",
"id": "6e6bd47a-c225-4d7f-8798-cc1275b0363c",
"cause": {
"type": "version_conflict_engine_exception",
"reason": "[6e6bd47a-c225-4d7f-8798-cc1275b0363c]: version conflict, required seqNo [667648], primary term [7]. but no document was found",
"index_uuid": "7wBzPBXYT4Kfx8jP1SjSNA",
"shard": "0",
"index": "invoices"
},
"status": 409
}
}
Могло ли быть что-то еще, что я делаю не так?