之所以会这样,是因为您尝试在遍历列表时修改列表,这意味着您想要更改对象列表,同时列出这些对象。
相反,您需要这样做:
POST /twitter/twit/1/_update{ "script": "item_to_remove = nil; foreach (item : ctx._source.list) { if (item['tweet_id'] == tweet_id) { item_to_remove=item; } } if (item_to_remove != nil) ctx._source.list.remove(item_to_remove);", "params": {"tweet_id": "123"}}如果您有多个符合条件的项目,请改用一个列表:
POST /twitter/twit/1/_update{ "script": "items_to_remove = []; foreach (item : ctx._source.list) { if (item['tweet_id'] == tweet_id) { items_to_remove.add(item); } } foreach (item : items_to_remove) {ctx._source.list.remove(item);}", "params": {"tweet_id": "123"}}


