用java操作solr时候,commit的时候有没有返回值来表示插入成功或者失败

用的solr4.0,java使用HttpSolrServer进行commit后有没有类似数据库一样的返回值啊,还是有其他的方法。我都不知道他插入成功了没有,难道要查询一下... 用的solr4.0,java使用HttpSolrServer进行commit后有没有类似数据库一样的返回值啊,还是有其他的方法。我都不知道他插入成功了没有,难道要查询一下才能知道?还就就是我在判断其是插入还是更新也不知道。 展开
 我来答
ifeilong
推荐于2017-11-26 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:800万
展开全部
  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是没有办法直接判断 到底是插入成功还是覆盖成功
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式