Is there any way to get only failed documents in the response while bulk request using Elasticsearch Java High-Level REST Client.
Currently, ES is sending all the succeed and failed document in the response and we are reprocessing all the failed document, we are iterating BulkItemResponse
to find the failed document and reprocessing it.
private BulkRequest createBulkRequestsForRetry(BulkResponse bulkItemResponses, BulkRequest currentBulkRequest) {
BulkRequest bulkRequest = new BulkRequest();
int index = 0;
for (BulkItemResponse bulkItemResponse : bulkItemResponses.getItems()) {
if (bulkItemResponse.isFailed()) {
bulkRequest.add(currentBulkRequest.requests().get(index));
}
index++;
}
return bulkRequest;
}
As bulkItemResponse.getItems()
representing each action performed in the bulk operation (in the same order!).