:::tips 批量处理需要使用BulkRequest对象,其本质就是将多个普通的CRUD请求组合在一起发送,可以使用BulkRequest对象的add方法,用来添加其他多个请求,能添加的请求包括:
- IndexRequest,新增
- UpdateRequest,修改
- DeleteRequest,删除
因此向BulkRequest对象中添加多个IndexRequest,就是批量新增 :::
@SpringBootTest
public class MyTest{
//注入RestHighLevelClient对象
@Autowired
private RestHighLevelClient restHighLevelClient;
@Test
public void test() throws IOException {
//批量查询数据库中的数据
List<类名> 集合对象名 = xxxService.list();
//创建BulkRequest请求对象
BulkRequest bulkRequest = new BulkRequest();
//遍历集合
for (类名 对象名 : 集合对象名) {
//将对象转为文档对象
文档类名 文档对象名 = new 文档类名(对象名);
//在BulkRequest请求对象中添加IndexRequest请求对象
bulkRequest.add(
new IndexRequest(索引库名)
.id(文档对象名.getId().toString())
.source(JSON.toJSONString(文档对象名), XContentType.JSON)
);
}
//发送请求
restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
}
}