удалить объекты из массива упругого поиска

Мне нужно удалить объект из массива, который удовлетворяет условию, я могу обновить объект массива на основе условия, которое заключается в следующем:

PUT twitter/twit/1
{"list": 
     [
        {
            "tweet_id": "1",
            "a": "b"
        },
        {
            "tweet_id": "123",
            "a": "f"
        }
    ]
}

POST /twitter/twit/1/_update
{"script":"foreach (item :ctx._source.list) {
                if item['tweet_id'] == tweet_id) {
                      item['new_field'] = 'ghi';
                }
           }",
 "params": {tweet_id": 123"}
}

это работает

для удаления я делаю это

POST /twitter/twit/1/_update
{ "script": "foreach (item : ctx._source.list) {
                    if item['tweet_id'] == tweet_id) {
                          ctx._source.list.remove(item); 
                    }
            }",
  "params": { tweet_id": "123" }
}

но это не работает и дает эту ошибку,

ElasticsearchIllegalArgumentException [не удалось выполнить скрипт]; nested: ConcurrentModificationException; Ошибка: ElasticsearchIllegalArgumentException [не удалось выполнить скрипт]; nested: ConcurrentModificationException

Я могу удалить весь массив или целое поле, используя

"script": "ctx._source.remove('list')"

Я также могу удалить объект из массива, указав все ключи объекта с помощью

"script":"ctx._source.list.remove(tag)",
     "params" : {
        "tag" : {"tweet_id": "123","a": "f"}

мой модуль модуля эластичного поиска версии 2.4.2 сервер эластичного поиска 1.3.2

Ответы на вопрос(2)

Ваш ответ на вопрос