Массовый ответ Elasticsearch с Python - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть следующий код Python для выполнения пакетного обновления ElasticSearch, и когда я возвращаю объект ответа, я получаю что-то очень простое, и мне это не кажется правильным, что-то здесь не так?

...
actions = []
for item in data:
    actions.append({"_index": index,
                    "_type": doc_type,
                    "_id": item['id'],
                    "_source": item})

print ("batching result")
response = helpers.bulk(self.es.conn, actions)
print (response)

Вот вывод, но я ожидаю чего-то более подробного.

batching result
(2, [])

1 Ответ

0 голосов
/ 30 апреля 2018

Как написано в документации :

Возвращает кортеж со сводной информацией - количество успешно выполненных действий и либо список ошибок, либо количество ошибок, если для stats_only установлено значение True [...] Если вам необходимо обработать большое количество данных и игнорировать / собирать ошибки, рассмотрите возможность использования помощника streaming_bulk (), который будет просто возвращать ошибки, а не сохранять их в памяти.

с streaming_bulk () вы должны использовать параметр raise_on_error для повышения при ошибке. если вы хотите собрать много данных, я предлагаю использовать parallel_bulk () , который быстрее и более интуитивно понятен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...