Hi All, I am trying to add a field in my Solr document based on the domain. Now that I have set it up using UpdateProcessorChain, I am running into null exception. Here is what I have- In SolrConfig.xml <updateRequestProcessorChain name="mychain" > <processor class="mysolr.AddConditionalFieldsFactory" > </processor> <processor class="solr.RunUpdateProcessorFactory" /> <processor class="solr.LogUpdateProcessorFactory" /> </updateRequestProcessorChain>
<requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy" > <lst name="defaults"> <str name="update.chain">mychain</str> </lst> </requestHandler> Here is my java code- package mysolr; import java.io.IOException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.request.SolrQueryResponse; import org.apache.solr.update.AddUpdateCommand; import org.apache.solr.update.processor.UpdateRequestProcessor; import org.apache.solr.update.processor.UpdateRequestProcessorFactory; public class AddConditionalFieldsFactory extends UpdateRequestProcessorFactory { @Override public UpdateRequestProcessor getInstance(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next) { System.out.println("From customization:"); return new AddConditionalFields(next); } } class AddConditionalFields extends UpdateRequestProcessor { public AddConditionalFields( UpdateRequestProcessor next) { super( next ); } @Override public void processAdd(AddUpdateCommand cmd) throws IOException { SolrInputDocument doc = cmd.getSolrInputDocument(); Object v = doc.getFieldValue( "url" ); if( v != null ) { String url = v.toString(); if( url.contains("question") ) { doc.addField( "tierFilter", "1" ); } } // pass it up the chain super.processAdd(cmd); } } Here is my Java code- and I get the following error when I try to index- Aug 20, 2011 10:48:43 AM org.apache.solr.common.SolrException log SEVERE: java.lang.AbstractMethodError at org.apache.solr.update.processor.UpdateRequestProcessorChain.createProcessor(UpdateRequestProcessorChain.java:74) at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:53) Any pointers please, I am using Solr 3.3 Thanks, Bhawna