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
if -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 status==5xx
or status==4xx
(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
of -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>
The 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.)
UpdateRequestProcessorFactory.RunAlways
Constructor and Description |
---|
TolerantUpdateProcessorFactory() |
Modifier and Type | Method and Description |
---|---|
UpdateRequestProcessor |
getInstance(SolrQueryRequest req,
SolrQueryResponse rsp,
UpdateRequestProcessor next) |
void |
inform(SolrCore core) |
void |
init(NamedList args) |
public void init(NamedList args)
init
in interface NamedListInitializedPlugin
init
in class UpdateRequestProcessorFactory
public void inform(SolrCore core)
inform
in interface SolrCoreAware
public UpdateRequestProcessor getInstance(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next)
getInstance
in class UpdateRequestProcessorFactory
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.