Поскольку вы используете массовый API и отправляете огромное количество данных в Elasticsearch, а время ожидания по умолчанию для соединения составляет 30 seconds
, а Elasticsearch не может завершить sh эту огромную массовую операцию в 30 seconds
, следовательно, вы получаете это исключение.
Это время ожидания является нормальным для больших массовых API, и в вашем случае (указание индексации c) вы можете сделать следующее:
Обновите инфраструктуру и ускорите скорость индексации
Масштабирование вашего кластера ie, добавьте больше ЦП, памяти, улучшенного диска, отключите refresh_interval (по умолчанию 1 se c), чтобы ускорить массовое индексирование.
Увеличение времени ожидания Bulk API
Как упоминалось в Официальная ES делает c
request.timeout(TimeValue.timeValueMinutes(2)); --> 2 min timeout
request.timeout("2m"); --> string format of 2 sec.
Редактировать : как указано в комментарий, вы можете использовать syn c выполнение массового API , если вы хотите немедленно проверить ответ вашего массового API , ниже приведена цитата из того же do c:
Получить ответ операции (успешно или нет), может быть IndexResponse, UpdateResponse или DeleteResponse, которые все могут рассматриваться как экземпляры DocWriteResponse