On 12/23/2015 12:25 PM, Debraj Manna wrote:
> Thanks Shawn. But after making the below changes (making versionable_chain
> as default) all my update,inserts & deleteByQuery are failing with the
> error "*Error from server at http://localhost:8888/solr/discovery
> <http://localhost:8888/solr/discovery>: DistributedUpdateProcessor must
> follow DocBasedVersionConstraintsProcessor*"
>
> <updateRequestProcessorChain name="versionable_chain" default="true">
>     <processor class="solr.DocBasedVersionConstraintsProcessorFactory">
>       <str name="versionField">doc_version</str>
>       <bool name="ignoreOldUpdates">false</bool>
>     </processor>
>   </updateRequestProcessorChain>

I believe that the standard update processor chain looks like this:

  <processor class="solr.DistributedUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
  <processor class="solr.LogUpdateProcessorFactory" />

I think that when you define a processor chain but do not include these
default processors, then they are automatically added in a predetermined
order and what you end up with is this:

  <processor class="solr.DistributedUpdateProcessorFactory" />
  <!-- Your custom processor list goes here -->
  <processor class="solr.RunUpdateProcessorFactory" />
  <processor class="solr.LogUpdateProcessorFactory" />

The error message you are getting suggests that this order will not work
and what you actually need to do is the following:

<updateRequestProcessorChain name="versionable_chain" default="true">
  <processor class="solr.DocBasedVersionConstraintsProcessorFactory">
    <str name="versionField">doc_version</str>
    <bool name="ignoreOldUpdates">false</bool>
  </processor>
  <processor class="solr.DistributedUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
  <processor class="solr.LogUpdateProcessorFactory" />
</updateRequestProcessorChain>

Thanks,
Shawn

Reply via email to