如何在Solr批处理请求中识别文档失败?

时间:2016-12-17 22:06:14

标签: solr solrj

我使用以下代码将文档发送到Solr:

    final UpdateRequest request = new UpdateRequest();
    request.setAction(UpdateRequest.ACTION.COMMIT, false, false);
    request.add(docsList);
    UpdateResponse response = request.process(solrClient);

从最后一行返回的响应似乎对确定如何识别批处理请求中的文档失败非常有帮助。

有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您正在寻找getStatus()方法:

UpdateResponse updateResponse = request.process(solrClient);
int responseStatus = updateResponse.getStatus()

这将返回一些错误,如SolrEception,如:

  
      
  • 503 SERVICE_UNAVAILABLE      
        
    • 500 SERVER_ERROR
    •   
    • 404 NOT_FOUND
    •   
    • 403 FORBIDDEN
    •   
    • 401 UNAUTHORIZED
    •   
    • 400 BAD_REQUEST
    •   
  •   

这不会告诉你哪个文档失败了,但是我建议找出一个错误代码的子集,这些错误代码需要获取失败的文档编号,在这种情况下你可以逐个文档重新索引并在你得到一个文件时停止错误。在这种情况下,最好使用小批量。