import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
@Autowired
RestHighLevelClient restHighLevelClient;
BulkRequest bulkRequest = new BulkRequest();
for (Vo vo : VoList) {
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(vo);
Map<String, Object> dataMap = objectMapper.readValue(jsonString, new TypeReference<Map<String, Object>>() {
});
bulkRequest.add(new IndexRequest("index").source(dataMap, XContentType.JSON));
}
// 执行批量请求
BulkResponse bulkResponse;
try {
// 执行批量请求
bulkResponse = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
// 处理异常
e.printStackTrace();
return;
}
// 处理响应
if (bulkResponse.hasFailures()) {
// 处理部分或全部请求失败的情况
for (BulkItemResponse itemResponse : bulkResponse) {
if (itemResponse.isFailed()) {
BulkItemResponse.Failure failure = itemResponse.getFailure();
log.error("Failed to insert document: " + failure.getMessage());
}
}
} else {
// 所有请求都成功
log.info("Bulk insert completed successfully.");
}
es的_bulk接口
最新推荐文章于 2024-07-17 17:19:25 发布