Thanks for your reply!
Here is the java code:
Assert.notNull(indexName, "es bulk index with null index name!");
Assert.notNull(userDatas, "es bulk index with null requests entity!");
if(CollectionUtils.isEmpty(userDatas)){
return;
}
BulkRequest bulkRequest = new BulkRequest();
for(UserData userData : userDatas){
Assert.notNull(userData, "userData is null!");
log.debug(userData.toString());
RedisUserLabelData labelData;
try {
labelData = RedisUserLabelData.buildFromMysqlUserData(userData);
} catch (Exception e){
log.error("RedisUserLabelData build from mysql entity UserData failed!", e);
continue;
}
Map<String, Object> dataMap;
try {
dataMap = PropertyUtils.describe(labelData);
/** 去掉class字段 **/
dataMap.remove("class");
} catch (Exception e){
throw new RuntimeException("beanUtil, bean to map transform failed!", e);
}
Assert.notNull(dataMap, "beanUtil, bean to map result null map");
Assert.notEmpty(dataMap, "beanUtil, bean to map result empty map");
IndexRequest indexRequest = new IndexRequest("posts").source(dataMap).index(indexName);
bulkRequest.add(indexRequest);
}
if(bulkRequest.numberOfActions() != userDatas.size()){
throw new RuntimeException("bulk request has requests number not equal to the parameter collection size!");
}
if(bulkRequest.numberOfActions() > 0) {
BulkResponse bulkResponse = null;
try {
bulkResponse = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
throw new RuntimeException("Error connect to Es", e);
}
if(bulkResponse.hasFailures()){
BulkItemResponse[] bulkItemResponseArr = bulkResponse.getItems();
for(BulkItemResponse bulkItemResponse : bulkItemResponseArr){
if(bulkItemResponse.isFailed()){
log.error("error while indexing : " + bulkItemResponse.getFailureMessage(), bulkItemResponse.getFailure().getCause());
}
}
}
}
I find no way to highlight the exact code where the log is printed, so i quote here:
bulkResponse = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
Everytime I send request(get/post/delete etc) to ElasticSearch,the log is printed.In order not to delay your time, i do not show the other code.
Thanks again!