Я написал фрагмент кода, который будет массово удалять идентификаторы es.Я написал то же самое в try except
:
with open(delete_patch_destination) as delete_json_file:
for line in delete_json_file:
line_content = json.loads(line)
for es_key in line_content.keys():
es_key = ast.literal_eval(es_key).decode()
es_indices_to_be_deleted.append(
{
'_op_type': 'delete',
'_index': self.index_name,
'_type': "latest",
"_id": es_key
}
)
if len(es_indices_to_be_deleted) >= 500:
try:
helpers.bulk(self.es, es_indices_to_be_deleted)
del es_indices_to_be_deleted[:]
except exceptions.NotFoundError:
pass
if len(es_indices_to_be_deleted) > 0:
try:
helpers.bulk(self.es, es_indices_to_be_deleted)
del es_indices_to_be_deleted[:]
except exceptions.NotFoundError:
pass
Ошибка для того же, хотя Not found error
и это:
py3.5.egg/pallet/tasks/datatable.py", line 244, in delete_from_es
helpers.bulk(self.es, es_indices_to_be_deleted)
File "/usr/local/lib/python3.5/dist-packages/elasticsearch/helpers/__init__.py", line 257, in bulk
for ok, item in streaming_bulk(client, actions, **kwargs):
File "/usr/local/lib/python3.5/dist-packages/elasticsearch/helpers/__init__.py", line 192, in streaming_bulk
raise_on_error, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/elasticsearch/helpers/__init__.py", line 137, in _process_bulk_chunk
raise BulkIndexError('%i document(s) failed to index.' % len(errors), errors)
elasticsearch.helpers.BulkIndexError: ('500 document(s) failed to index.', [{'delete': {'_index': 'f0e7d61886945c3b7cfcd894e9f552d0', 'status': 404, '_type': 'latest', '_id': 'f52193c6535e6417b0b51d74a6ca3f22', '_shards': {'total': 2, 'successful': 1, 'failed': 0}, '_version': 1, 'found': False}},
Должен ли я, кроме возникшей ошибки или чтоеще для этого массового удаления на работу?