You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by derrick cui <de...@yahoo.ca.INVALID> on 2020/04/11 19:16:02 UTC

how to use multiple update process chain?

Hi, 
I need to do three tasks.1. add-unkown-fields-to-the-schema2. create composite key3. remove duplicate for specified field
I defined update.chain as below, but only the first one works, the others don't work. please help. thanks
<requestHandler name="/update" class="solr.UpdateRequestHandler" >
  <lst name="defaults">
    <str name="update.chain">add-unknown-fields-to-the-schema</str>
    <str name="update.chain">composite-id</str>
    <str name="update.chain">deduplicateTaxonomy</str>
  </lst>
</requestHandler>
<updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}"
         processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
   <processor class="solr.LogUpdateProcessorFactory"/>
  <processor class="solr.DistributedUpdateProcessorFactory"/>
  <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>
<updateRequestProcessorChain name="composite-id">
  <processor class="solr.CloneFieldUpdateProcessorFactory">
    <str name="source">_gl_collection</str>
    <str name="dest">_gl_id</str>
  </processor>
  <processor class="solr.CloneFieldUpdateProcessorFactory">
    <str name="source">id</str>
    <str name="dest">_gl_id</str>
  </processor>
  <processor class="solr.ConcatFieldUpdateProcessorFactory">
    <str name="fieldName">_gl_id</str>
    <str name="delimiter">-</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
<updateRequestProcessorChain name="deduplicateTaxonomy" default="true">
  <processor class="solr.UniqFieldsUpdateProcessorFactory">
    <str name="fieldRegex">_gl_dp_.*</str>
    <str name="fieldRegex">_gl_ss_score_.*</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
thanks


Re: how to use multiple update process chain?

Posted by Alexandre Rafalovitch <ar...@gmail.com>.
You can only have one chain at the time.

You can, however, create your custom URP chain to contain
configuration from all three.

Or, if you do use multiple chains that are configured similarly, you
can pull each URP into its own definition and then mix and match then
either in the chain or even per request (or in request defaults):
https://lucene.apache.org/solr/guide/8_5/update-request-processors.html#configuring-individual-processors-as-top-level-plugins

Regards,
   Alex.

On Sat, 11 Apr 2020 at 15:16, derrick cui
<de...@yahoo.ca.invalid> wrote:
>
> Hi,
> I need to do three tasks.1. add-unkown-fields-to-the-schema2. create composite key3. remove duplicate for specified field
> I defined update.chain as below, but only the first one works, the others don't work. please help. thanks
> <requestHandler name="/update" class="solr.UpdateRequestHandler" >
>   <lst name="defaults">
>     <str name="update.chain">add-unknown-fields-to-the-schema</str>
>     <str name="update.chain">composite-id</str>
>     <str name="update.chain">deduplicateTaxonomy</str>
>   </lst>
> </requestHandler>
> <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}"
>          processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
>    <processor class="solr.LogUpdateProcessorFactory"/>
>   <processor class="solr.DistributedUpdateProcessorFactory"/>
>   <processor class="solr.RunUpdateProcessorFactory"/>
> </updateRequestProcessorChain>
> <updateRequestProcessorChain name="composite-id">
>   <processor class="solr.CloneFieldUpdateProcessorFactory">
>     <str name="source">_gl_collection</str>
>     <str name="dest">_gl_id</str>
>   </processor>
>   <processor class="solr.CloneFieldUpdateProcessorFactory">
>     <str name="source">id</str>
>     <str name="dest">_gl_id</str>
>   </processor>
>   <processor class="solr.ConcatFieldUpdateProcessorFactory">
>     <str name="fieldName">_gl_id</str>
>     <str name="delimiter">-</str>
>   </processor>
>   <processor class="solr.LogUpdateProcessorFactory" />
>   <processor class="solr.RunUpdateProcessorFactory" />
> </updateRequestProcessorChain>
> <updateRequestProcessorChain name="deduplicateTaxonomy" default="true">
>   <processor class="solr.UniqFieldsUpdateProcessorFactory">
>     <str name="fieldRegex">_gl_dp_.*</str>
>     <str name="fieldRegex">_gl_ss_score_.*</str>
>   </processor>
>   <processor class="solr.LogUpdateProcessorFactory" />
>   <processor class="solr.RunUpdateProcessorFactory" />
> </updateRequestProcessorChain>
> thanks
>