Package org.apache.solr.update.processor
Class TolerantUpdateProcessor
- java.lang.Object
-
- org.apache.solr.update.processor.UpdateRequestProcessor
-
- org.apache.solr.update.processor.TolerantUpdateProcessor
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class TolerantUpdateProcessor extends UpdateRequestProcessor
Suppresses errors for individual add/delete commands within a single request. Instead of failing on the first error, at mostmaxErrors
errors (or unlimited if-1==maxErrors
) are logged and recorded the batch continues. The client will receive astatus==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 withstatus==5xx
orstatus==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).NOTE: In cloud based collections, this processor expects to NOT be used on
DistributedUpdateProcessor.DistribPhase.FROMLEADER
requests (because any successes that occur locally on the leader are considered successes even if there is some subsequent error on a replica).TolerantUpdateProcessorFactory
will short circut it away in those requests.- See Also:
TolerantUpdateProcessorFactory
-
-
Field Summary
-
Fields inherited from class org.apache.solr.update.processor.UpdateRequestProcessor
next
-
-
Constructor Summary
Constructors Constructor Description TolerantUpdateProcessor(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next, int maxErrors, DistributedUpdateProcessor.DistribPhase distribPhase)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
finish()
void
processAdd(AddUpdateCommand cmd)
void
processCommit(CommitUpdateCommand cmd)
void
processDelete(DeleteUpdateCommand cmd)
void
processMergeIndexes(MergeIndexesCommand cmd)
void
processRollback(RollbackUpdateCommand cmd)
-
Methods inherited from class org.apache.solr.update.processor.UpdateRequestProcessor
close, doClose
-
-
-
-
Constructor Detail
-
TolerantUpdateProcessor
public TolerantUpdateProcessor(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next, int maxErrors, DistributedUpdateProcessor.DistribPhase distribPhase)
-
-
Method Detail
-
processAdd
public void processAdd(AddUpdateCommand cmd) throws IOException
- Overrides:
processAdd
in classUpdateRequestProcessor
- Throws:
IOException
-
processDelete
public void processDelete(DeleteUpdateCommand cmd) throws IOException
- Overrides:
processDelete
in classUpdateRequestProcessor
- Throws:
IOException
-
processMergeIndexes
public void processMergeIndexes(MergeIndexesCommand cmd) throws IOException
- Overrides:
processMergeIndexes
in classUpdateRequestProcessor
- Throws:
IOException
-
processCommit
public void processCommit(CommitUpdateCommand cmd) throws IOException
- Overrides:
processCommit
in classUpdateRequestProcessor
- Throws:
IOException
-
processRollback
public void processRollback(RollbackUpdateCommand cmd) throws IOException
- Overrides:
processRollback
in classUpdateRequestProcessor
- Throws:
IOException
-
finish
public void finish() throws IOException
- Overrides:
finish
in classUpdateRequestProcessor
- Throws:
IOException
-
-