原文地址:http://blog.csdn.net/u012116196/article/details/51754845
BulkProcessor類提供了一個簡單介面自動沖洗大量操作基於請求的數量或大小,或者在給定的時期。
使用它,首先建立一個 BulkProcessor執行個體: [java] view plain copy import org.elasticsearch.action.bulk.BackoffPolicy; import org.elasticsearch.action.bulk.BulkProcessor; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.unit.TimeValue; BulkProcessor bulkProcessor = BulkProcessor.builder( client, //<1> new BulkProcessor.Listener() { @Override public void beforeBulk(long executionId, BulkRequest request) { ... } //<2> @Override public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { ... } //<3> @Override public void afterBulk(long executionId, BulkRequest request, Throwable failure) { ... } //<4> }) .setBulkActions(10000) //<5> .setBulkSize(new ByteSizeValue(1, ByteSizeUnit.GB)) //<6> .setFlushInterval(TimeValue.timeValueSeconds(5)) //<7> .setConcurrentRequests(1) //<8> .setBackoffPolicy( BackoffPolicy.exponentialBackoff(TimeValue.timeValueMillis(100), 3)) //<9> .build();
|
|
添加您elasticsearch客戶 |
|
|
調用此方法之前執行。例如你可以看到numberOfActions request.numberOfActions() |
|
|
批量執行後調用此方法。例如你可以檢查是否有一些失敗的請求 |