用java操作solr时候,commit的时候有没有返回值来表示插入成功或者失败
用的solr4.0,java使用HttpSolrServer进行commit后有没有类似数据库一样的返回值啊,还是有其他的方法。我都不知道他插入成功了没有,难道要查询一下...
用的solr4.0,java使用HttpSolrServer进行commit后有没有类似数据库一样的返回值啊,还是有其他的方法。我都不知道他插入成功了没有,难道要查询一下才能知道?还就就是我在判断其是插入还是更新也不知道。
展开
1个回答
展开全部
commit 有返回值的
UpdateResponse updateResponse = solrServer.commit();
int status = updateResponse.getStatus()
这里的 status 可以拿到操作执行的状态 ,0表示 成功
if (status != 0) {
log.error("Some horrible error has occurred, status is:" + status);
}
2.
try{
UpdateResponse addBeanUpdateResponse = solrServer.add(solrInputDocuments);
UpdateResponse updateResponse = solrServer.commit();
int status = updateResponse.getStatus();
}catch (Exception e){
//Do something
}
你还可以通过 异常来判断 是否执行成功
追问
但是插入成功和覆盖成功的话没法判断呀。。。我就是无法知道他是不是已存在,因为他如果不存在就是插入,已存在则是覆盖。都能够执行成功
追答
我明白你的意思, 如果按照你这样的需求, 是需要先查询一次, 这个API是没有办法直接判断 到底是插入成功还是覆盖成功
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询