数据量小的方法一:
![在这里插入图片描述](https://img-blog.csdnimg.cn/329efd7b40a0432cb2d68e32857c8e9c.png)
首先必须创建client
public class ClientConfig {
@Bean
public RestHighLevelClient restHighLevelClient(){
return new RestHighLevelClient(RestClient.builder(
HttpHost.create("http://192.168.150.102:9200")
));
}
}
批量导入数据量大时,用分页
public class FeignTest {
@Autowired
private ItemMapperService itemService;
@Autowired
private RestHighLevelClient client;
@Test
void testBulkRequest() throws IOException {
buildPage(0, 20000);
}
private void buildPage(int current, int size) throws IOException {
List<Item> records = itemService.page(new Page<>(current, size)).getRecords();
if (records == null||records.size() == 0) {
return;
}
BulkRequest request = new BulkRequest();
for (Item list : records) {
ItemDoc itemDoc= new ItemDoc(list);
request.add(new IndexRequest("item")
.id(itemDoc.getId().toString())
.source(JSON.toJSONString(itemDoc), XContentType.JSON));
}
client.bulk(request, RequestOptions.DEFAULT);
buildPage(current + 1, size);
}
}
Json的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>