https://issues.apache.org/jira/browse/SOLR-445

This JIRA reflects the slightly different case of wanting better
reporting of *which* document failed in a multi-document packet, it
doesn't specifically address SUSS. But it might serve to give you some
ideas if you tackle this.

On Tue, Mar 27, 2012 at 11:14 AM, Mark Miller <markrmil...@gmail.com> wrote:
>
> On Mar 27, 2012, at 10:51 AM, Shawn Heisey wrote:
>
>> On 3/26/2012 6:43 PM, Mark Miller wrote:
>>> It doesn't get thrown because that logic needs to continue - you don't 
>>> necessarily want one bad document to stop all the following documents from 
>>> being added. So the exception is sent to that method with the idea that you 
>>> can override and do what you would like. I've written sample code around 
>>> stopping and throwing an exception, but I guess its not totally trivial. 
>>> Other ideas for reporting errors have been thrown around in the past, but 
>>> no work on it has gotten any traction.
>>
>> It looks like StreamingUpdateSolrServer is not meant for situations where 
>> strict error checking is required.  I think the documentation should reflect 
>> that.  Would you be opposed to a javadoc update at the class level (plus a 
>> wiki addition) like the following? "Because document inserts are handled as 
>> background tasks, exceptions and errors that occur during those operations 
>> will not be available to the calling program, but they will be logged.  For 
>> example, if the Solr server is down, your program must determine this on its 
>> own.  If you need strict error handling, use CommonsHttpSolrServer."  If my 
>> wording is bad, feel free to make suggestions.
>>
>> If I'm wrong and you do have an example of an error handling override that 
>> would do what I need, I would love to see it.  From what I can tell, add 
>> requests are pushed down and handled by Runner threads, completely 
>> disconnected from the request.  The response to add calls always seems to be 
>> a NOTE element saying "the request is processed in a background stream", 
>> even if successful.
>>
>> Thanks,
>> Shawn
>>
>
>
> I'm not saying what it's meant for, I'm just saying what it is. Currently, 
> the only thing you can do to check for errors is override that method. I 
> understand it's still somewhat limiting - it depends on your use case how 
> well it can work. For example, I've know people that just want to stop the 
> update process if a doc fails, and throw an exception. You can write code to 
> do that by extending the class and overriding handleError. You can also 
> collection the exceptions, count the fails, read and parse any error 
> messages, etc. It doesn't help you with an ID or anything though - unless you 
> get unluck/lucky and can parse it out of error messages (if it's even in 
> them). It might be more useful if you could set the name of an id field for 
> it to look for and perhaps also dump to that method.
>
> Their have been previous conversations about improving error reporting for 
> this SolrServer, but no work has ever really gotten off the ground. There may 
> be existing JIRA issues around this topic - certainly there are previous 
> email threads.
>
> All and all though, please, make all the suggestions and JIRA issues you 
> want. Javadoc improvements can be submitted as patches through JIRA as well. 
> Also, the Wiki is open to anyone to update.
>
> - Mark Miller
> lucidimagination.com
>
>
>
>
>
>
>
>
>
>
>

Reply via email to