I'm trying to update records in my Solr core, and have configured a custom update chain that skips updates to records that don't exist:

<updateRequestProcessorChain name="skipexisting">
   <processor class="solr.LogUpdateProcessorFactory" />
   <processor class="solr.SkipExistingDocumentsProcessorFactory">
     <bool name="skipInsertIfExists">true</bool>
     <bool name="skipUpdateIfMissing">true</bool>
   </processor>
   <processor class="solr.DistributedUpdateProcessorFactory" />
   <processor class="solr.RunUpdateProcessorFactory" />
 </updateRequestProcessorChain>

My SolrJ update code is currently:

for (Map.Entry<Integer, Integer> user : users.entrySet()) {
    SolrInputDocument document = new SolrInputDocument();
    document.addField("id", user.key().toString());
document.addField("applications", Collections.singletonMap("set", user.value()));

    solrClient.add(document);
}

solrClient.commit();

I can't seem to specify the update chain to use and I assume I need to use the UpdateRequest class. However, it's not clear how I go about setting a parameter on the UpdateRequest in order to specify the update chain.

Chris

Reply via email to