当前位置 博文首页 > OBJECT but found [VALUE_NULL]_闫玉林的博客:elasticsearch批
更新索引失败:{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Malformed action/metadata line [2], expected START_OBJECT but found [VALUE_NULL]"}],"type":"illegal_argument_exception","reason":"Malformed action/metadata line [2], expected START_OBJECT but found [VALUE_NULL]"},"status":400}
org.frameworkset.elasticsearch.ElasticSearchException: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Malformed action/metadata line [2], expected START_OBJECT but found [VALUE_NULL]"}],"type":"illegal_argument_exception","reason":"Malformed action/metadata line [2], expected START_OBJECT but found [VALUE_NULL]"},"status":400}
/**
* 批量创建/更新索引
* @param bulkCommitVOList
* @return
*/
public static Object bulkIndex(List<BulkCommitVO> bulkCommitVOList){
//创建es客户端
ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil();
if(bulkCommitVOList.size()>0 && clientUtil.existIndice(bulkCommitVOList.get(0).getIndexName())){
StringBuffer requestStr = new StringBuffer();
for(int i=0;i<bulkCommitVOList.size();i++){
requestStr.append("{ \""+bulkCommitVOList.get(i).getAction()+"\" : { \"_index\" : \""
+bulkCommitVOList.get(i).getIndexName()+"\", \"_type\" : \""+bulkCommitVOList.get(i).getTypeName()+"\", \"_id\" : \""
+bulkCommitVOList.get(i).getId()+"\" } }\n");
//当时少加了这个判断,使delete语句后多了一行空行,导致报错
if(!bulkCommitVOList.get(i).getAction().equals("delete")){
requestStr.append(bulkCommitVOList.get(i).getInfo()).append("\n");
}
}
//此处加了打印,可以看到报错原因是delete后多了一行空行
if(bulkCommitVOList.get(0).getAction().contains("delete")){
System.out.println("requestStr=\n"+requestStr.toString());
}
String bulkStr = clientUtil.executeHttp("/_bulk",requestStr.toString(),"post");
esLog.info(bulkStr);
return new ResultVO(bulkStr);
}
return new ResultVO();
}
cs