Hello,

I think the problem might be the following, if you defined the update
request handlers like in the sample solrconfig :

<updateRequestProcessorChain name="uima">
     <processor
class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
      <lst name="uimaConfig">
     ....
</updateRequestProcessorChain>

<requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
    <lst name="defaults">
      <str name="update.chain">uima</str>
    </lst>
  </requestHandler>
...
  <requestHandler name="/update/javabin"
class="solr.BinaryUpdateRequestHandler" />

then the uima update chain will be executed only for HTTP POSTs on /update
and not for /update/javabin (that is used by SolrJ), so you may need to
update the /update/javabin configuration as follows:

<requestHandler name="/update/javabin"
class="solr.BinaryUpdateRequestHandler" >
  <lst name="defaults">
      <str name="update.chain">uima</str>
    </lst>
</requestHandler>

Hope this helps,
Tommaso


2011/7/13 Erick Erickson <erickerick...@gmail.com>

> I'll have to punt here. I don't know the internals well enough to say. I
> suppose
> it's possible that the "required fields" check happens *before* the UIMA
> stuff happens, but since I know so little about UIMA that's a blind guess
> at best...
>
> Anyone with real knowledge want to chime in here?
>
> Erick
>
> On Wed, Jul 13, 2011 at 8:08 AM, Sowmya V.B. <vbsow...@gmail.com> wrote:
> > Hi Eric*
> >
> >>>If I'm reading this right, you're labeling certain fields as required.
> All
> > docs MUST have those fields (I admit the error message could be more
> > informative). So it sounds like things are behaving as I'd expect, your
> > documents just don't contain the required fields.*
> > - But, the UIMA pipeline is supposed to add the missing fields for the
> > document.
> >
> > Since "ant clean dist" compiled without build errors, and it was
> essentially
> > the same pipeline I already used before on a different indexer, I can say
> > that there is no problem with the Pipeline as such.
> >
> > That again gets back my other query: While indexing, should I mention
> > something else, apart from just saying:
> >
> > Something like:
> > doc1.addfield(A)
> > doc1.addfield(B)
> > docs.add(doc1)
> > ....
> >
> > docN.addfield(A)
> > docN.addfield(B)
> > docs.add(docN)
> >
> > UpdateResponse response = server.add(docs)
> >
> > - My understanding was that: the UIMAProcessor runs after I say
> > server.add()... inside the updateprocessor. Is it not so?
> >
> > S
> >
> > On Wed, Jul 13, 2011 at 2:00 PM, Erick Erickson <erickerick...@gmail.com
> >wrote:
> >
> >> If I'm reading this right, you're labeling certain fields as required.
> All
> >> docs
> >> MUST have those fields (I admit the error message could be more
> >> informative). So it sounds like things are behaving as I'd expect, your
> >> documents just don't contain the required fields.
> >>
> >> Best
> >> Erick
> >>
> >> On Wed, Jul 13, 2011 at 4:54 AM, Sowmya V.B. <vbsow...@gmail.com>
> wrote:
> >> > Hi All
> >> >
> >> > I have a problem making the indexer work with the UIMA fields.
> >> >
> >> > Here is what I did (With the help of this community): I compiled a
> >> > Solr-UIMA-snapshot, using "ant clean dist", by adding my own
> annotators
> >> > there.
> >> > It compiled without any errors. and i obtained a jar file.
> >> >
> >> > Now, following the instructions on the readme (
> >> >
> >>
> https://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_3/solr/contrib/uima/README.txt
> >> > )
> >> >
> >> >  I modified my SolrConfig.xml and Schema.xml as suggested in the
> README.
> >> >
> >> > As long as i say "required=false" on the UIMA generated fields, the
> >> indexing
> >> > works fine...without a UIMA annotation.
> >> >
> >> > However, once I say "required=true", I get an error:
> >> >
> >> > request:
> >> >
> http://anafi:8080/apache-solr-3.3.0/update/javabin?wt=javabin&version=2
> >> > org.apache.solr.common.SolrException: Bad Request
> >> >
> >> > Bad Request
> >> >
> >> > request:
> >> >
> >>
> http://localhost:8080/apache-solr-3.3.0/update/javabin?wt=javabin&version=2
> >> >    at
> >> >
> >>
> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:435)
> >> >    at
> >> >
> >>
> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:244)
> >> >    at
> >> >
> >>
> org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
> >> >    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:49)
> >> >    at indexerapp.ir4llSolrIndexer.indexAll(ir4llSolrIndexer.java:150)
> >> >    at indexerapp.ir4llSolrIndexer.main(ir4llSolrIndexer.java:57)
> >> >
> >> > Is thre something during indexing that I need to do apart from saying:
> >> >
> >> > UpdateResponse response = server.add(docs);
> >> > (where docs is a collection of documents, without UIMA indexing.)
> >> >
> >> > My understanding is that the UIMA annotation happens after calling the
> >> > server.add(docs). Is that right?
> >> >
> >> > S.
> >> > --
> >> > Sowmya V.B.
> >> > ----------------------------------------------------
> >> > Losing optimism is blasphemy!
> >> > http://vbsowmya.wordpress.com
> >> > ----------------------------------------------------
> >> >
> >>
> >
> >
> >
> > --
> > Sowmya V.B.
> > ----------------------------------------------------
> > Losing optimism is blasphemy!
> > http://vbsowmya.wordpress.com
> > ----------------------------------------------------
> >
>

Reply via email to