Посылаю delete
и index
запросы elasticsearch навалом (пример выполнен с from the docs):Является ли порядок операций гарантированным при массовом обновлении?
{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
Последовательность выше, предназначена для первого delete
возможный документ с _id=1
, а затем index
новый документ с тем же _id=1
.
Гарантирован ли порядок действий? Другими словами, в приведенном выше примере я могу быть уверен, что delete
не коснется документа index
после этого (потому что заказ не будет уважаться по той или иной причине)?
Правда, мой пример упрощен. На самом деле, у меня уже есть ES, скажем, 4 документа (с идентификаторами 1, 2, 3, 4) и их нужно сначала удалить, а затем переиндексировать подмножество этих документов (например, id 2 и 4). Вот почему я хочу знать, будет ли последовательность операций сначала очищать все четыре документа, а затем переиндексации следующих двух. – WoJ
Да, порядок выполнения гарантирован. В противном случае это был бы кошмар условий гонки. – Val
@ Вал, я не мог найти этот сценарий в эластичной документации. Откуда вы знаете, что заказ сохранен? –