|
20 | 20 | import static org.springframework.util.CollectionUtils.*;
|
21 | 21 |
|
22 | 22 | import java.util.ArrayList;
|
23 |
| -import java.util.HashMap; |
24 | 23 | import java.util.Iterator;
|
25 | 24 | import java.util.List;
|
26 | 25 | import java.util.Map;
|
|
34 | 33 | import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
|
35 | 34 | import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder;
|
36 | 35 | import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
|
37 |
| -import org.elasticsearch.action.bulk.BulkItemResponse; |
38 | 36 | import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
39 |
| -import org.elasticsearch.action.bulk.BulkResponse; |
40 | 37 | import org.elasticsearch.action.get.GetRequestBuilder;
|
41 | 38 | import org.elasticsearch.action.get.GetResponse;
|
42 | 39 | import org.elasticsearch.action.get.MultiGetRequest;
|
@@ -431,62 +428,20 @@ public void bulkIndex(List<IndexQuery> queries, BulkOptions bulkOptions, IndexCo
|
431 | 428 | Assert.notNull(queries, "List of IndexQuery must not be null");
|
432 | 429 | Assert.notNull(bulkOptions, "BulkOptions must not be null");
|
433 | 430 |
|
434 |
| - BulkRequestBuilder bulkRequest = client.prepareBulk(); |
435 |
| - setBulkOptions(bulkRequest, bulkOptions); |
436 |
| - queries.stream() // |
437 |
| - .map(query -> requestFactory.indexRequestBuilder(client, query, index)) // |
438 |
| - .forEach(bulkRequest::add); |
439 |
| - checkForBulkUpdateFailure(bulkRequest.execute().actionGet()); |
| 431 | + doBulkOperation(queries, bulkOptions, index); |
440 | 432 | }
|
441 | 433 |
|
442 | 434 | @Override
|
443 | 435 | public void bulkUpdate(List<UpdateQuery> queries, BulkOptions bulkOptions, IndexCoordinates index) {
|
444 | 436 | Assert.notNull(queries, "List of UpdateQuery must not be null");
|
445 | 437 | Assert.notNull(bulkOptions, "BulkOptions must not be null");
|
446 | 438 |
|
447 |
| - BulkRequestBuilder bulkRequest = client.prepareBulk(); |
448 |
| - setBulkOptions(bulkRequest, bulkOptions); |
449 |
| - queries.stream() // |
450 |
| - .map(query -> requestFactory.updateRequestBuilderFor(client, query, index)) // |
451 |
| - .forEach(bulkRequest::add); |
452 |
| - checkForBulkUpdateFailure(bulkRequest.execute().actionGet()); |
| 439 | + doBulkOperation(queries, bulkOptions, index); |
453 | 440 | }
|
454 | 441 |
|
455 |
| - private static void setBulkOptions(BulkRequestBuilder bulkRequest, BulkOptions bulkOptions) { |
456 |
| - |
457 |
| - if (bulkOptions.getTimeout() != null) { |
458 |
| - bulkRequest.setTimeout(bulkOptions.getTimeout()); |
459 |
| - } |
460 |
| - |
461 |
| - if (bulkOptions.getRefreshPolicy() != null) { |
462 |
| - bulkRequest.setRefreshPolicy(bulkOptions.getRefreshPolicy()); |
463 |
| - } |
464 |
| - |
465 |
| - if (bulkOptions.getWaitForActiveShards() != null) { |
466 |
| - bulkRequest.setWaitForActiveShards(bulkOptions.getWaitForActiveShards()); |
467 |
| - } |
468 |
| - |
469 |
| - if (bulkOptions.getPipeline() != null) { |
470 |
| - bulkRequest.pipeline(bulkOptions.getPipeline()); |
471 |
| - } |
472 |
| - |
473 |
| - if (bulkOptions.getRoutingId() != null) { |
474 |
| - bulkRequest.routing(bulkOptions.getRoutingId()); |
475 |
| - } |
476 |
| - } |
477 |
| - |
478 |
| - private void checkForBulkUpdateFailure(BulkResponse bulkResponse) { |
479 |
| - if (bulkResponse.hasFailures()) { |
480 |
| - Map<String, String> failedDocuments = new HashMap<>(); |
481 |
| - for (BulkItemResponse item : bulkResponse.getItems()) { |
482 |
| - if (item.isFailed()) |
483 |
| - failedDocuments.put(item.getId(), item.getFailureMessage()); |
484 |
| - } |
485 |
| - throw new ElasticsearchException( |
486 |
| - "Bulk indexing has failures. Use ElasticsearchException.getFailedDocuments() for detailed messages [" |
487 |
| - + failedDocuments + "]", |
488 |
| - failedDocuments); |
489 |
| - } |
| 442 | + private void doBulkOperation(List<?> queries, BulkOptions bulkOptions, IndexCoordinates index) { |
| 443 | + BulkRequestBuilder bulkRequest = requestFactory.bulkRequestBuilder(client,queries, bulkOptions, index); |
| 444 | + checkForBulkOperationFailure(bulkRequest.execute().actionGet()); |
490 | 445 | }
|
491 | 446 |
|
492 | 447 | @Override
|
|
0 commit comments