Existe-t-il un moyen d'obtenir uniquement les documents ayant échoué dans la réponse lors d'une demande groupée à l'aide du client REST Java de haut niveau d'Elasticsearch ?
Actuellement, ES envoie tous les documents réussis et ratés dans la réponse et nous retraitons tous les documents ratés, nous itérons. BulkItemResponse
pour retrouver le document défaillant et le retraiter.
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;
}
Comme bulkItemResponse.getItems()
représentant chaque action effectuée dans l'opération de masse (dans le même ordre !).