public class TolerantUpdateProcessorFactory extends UpdateRequestProcessorFactory implements SolrCoreAware, UpdateRequestProcessorFactory.RunAlways
Suppresses errors for individual add/delete commands within a single request.
Instead of failing on the first error, at most
maxErrors errors (or unlimited
-1==maxErrors) are logged and recorded the batch continues.
The client will receive a
status==200 response, which includes a list of errors
that were tolerated.
If more then
maxErrors occur, the first exception recorded will be re-thrown,
Solr will respond with
(depending on the underlying exceptions) and it won't finish processing any more updates in the request.
(ie: subsequent update commands in the request will not be processed even if they are valid).
maxErrors is an int value that can be specified in the configuration and/or overridden
per request. If unset, it will default to
Integer.MAX_VALUE. Specifying an explicit value
-1 is supported as shorthand for
Integer.MAX_VALUE, all other negative
integer values are not supported.
An example configuration would be:
<updateRequestProcessorChain name="tolerant-chain"> <processor class="solr.TolerantUpdateProcessorFactory"> <int name="maxErrors">10</int> </processor> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>
maxErrors parameter in the above chain could be overwritten per request, for example:
curl http://localhost:8983/update?update.chain=tolerant-chain&maxErrors=100 -H "Content-Type: text/xml" -d @myfile.xml
NOTE: The behavior of this UpdateProcessofFactory in conjunction with indexing operations while a Shard Split is actively in progress is not well defined (or sufficiently tested). Users of this update processor are encouraged to either disable it, or pause updates, while any shard splitting is in progress (see SOLR-8881 for more details.)
|Constructor and Description|
|Modifier and Type||Method and Description|