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 > > ---------------------------------------------------- > > >