2017-02-14 4 views
0

私はJESTを通じてバルクリクエストを実行しようとしていて、一度に1つずつデータを追加してからすべてを一度に実行したいと思いますが、次のコードを10枚の請求書で実行しますちょうど最後の請求書が実行されている、誰かが10回の請求書を実行するためにこのコードを修正してください(forループの外で、すなわちバルクリクエストを使用して実行することによって)?JESTバルクリクエスト発行

あなたがループの外に一括Builderを構築し、すべての法案を追加するためにそれを使用する必要があります
for(JSONObject bill : bills) {   
       bulkRequest = new Bulk.Builder() 
       .addAction(new Index.Builder(bill.toString()).index(index).type(type).id(id).build()) 
       .build(); 
       } 

     bulkResponse = Client.execute(bulkRequest); 

答えて

1

bulkRequest = new Bulk.Builder() 
for(JSONObject bill : bills) {   
     bulkRequest.addAction(new Index.Builder(bill.toString()).index(index).type(type).id(id).build()) 
}  
bulkResponse = Client.execute(bulkRequest.build()); 
0

私はそれが古い質問ですけど、念の誰かが、この全体につまずきますここでは、同じことをするJava 8 /(lambdas)の方法です。

Client.execute(new Bulk.Builder() 
         .addAction(
          bills.stream() 
          .map(bill -> 
           new Index.Builder(bill.toString() 
          ) 
          .index(index).type(type).id(id).build()) 
          .collect(Collectors.toList()) 
         ).build());