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

Reply via email to