JEST 批量请求问题

JEST Bulk Request Issue

我正在尝试通过 JEST 运行 批量请求并希望一次附加我的数据(比如 "bills")然后一次执行所有数据,但是当我 运行 10 个账单上的以下代码只是最后一个账单正在执行,有人可以更正此代码以执行所有 10 个账单(通过在 for 循环之外执行它,即使用批量请求)?

    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);

您需要在循环外构建 Bulk Builder,然后使用它来添加所有账单:

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());

我知道这是一个老问题,但为了防止有人偶然发现这个问题,这里有一个 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());