You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by solr nps <so...@gmail.com> on 2011/08/17 02:18:58 UTC

Solr UIMA integration problem

Hello,

I am using Solr 3.3. I have been following instructions at
https://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_3/solr/contrib/uima/README.txt

My setup looks like the following.

solr lib directory contains the following jars

apache-solr-uima-3.3.0.jar
commons-digester-2.0.jar
uima-an-alchemy-2.3.1-SNAPSHOT-r1062868.jar
uima-an-calais-2.3.1-SNAPSHOT-r1062868.jar
uima-an-tagger-2.3.1-SNAPSHOT-r1062868.jar
uima-an-wst-2.3.1-SNAPSHOT-r1076132.jar
uimaj-core-2.3.1.jar


solr_config.xml has the following changes.

 <updateRequestProcessorChain name="uima">
        <processor
class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
      <lst name="uimaConfig">
        <lst name="runtimeParameters">
          <str name="keyword_apikey">MY_KEY</str>
          <str name="concept_apikey">MY_KEY</str>
          <str name="lang_apikey">MY_KEY</str>
          <str name="cat_apikey">MY_KEY</str>
          <str name="entities_apikey">MY_KEY</str>
          <str name="oc_licenseID">MY_SECOND_KEY</str>
        </lst>
        <str
name="analysisEngine">/org/apache/uima/desc/OverridingParamsExtServicesAE.xml</str>
        <bool name="ignoreErrors">false</bool>
        <str name="logField">title</str>
        <lst name="analyzeFields">
          <bool name="merge">false</bool>
        *  <arr name="fields">*
*            <str>title</str>*
*          </arr>*
        </lst>
        <lst name="fieldMappings">
          <lst name="type">
            <str
name="name">org.apache.uima.alchemy.ts.concept.ConceptFS</str>
            <lst name="mapping">
              *<str name="feature">title</str>*
*              <str name="field">concept</str>*
            </lst>
          </lst>
          <lst name="type">
            <str name="name">org.apache.uima.SentenceAnnotation</str>
            <lst name="mapping">
         *     <str name="feature">title</str>*
*              <str name="field">sentence</str>*
            </lst>
          </lst>
        </lst>
      </lst>
    </processor>

and

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

I am trying to index a simple document which looks like the following

<add>
<doc>
<field name="docid">1456780001</field>
<field name=*"title"*>Canon powershow camera 9000</field>
</doc>
</add>


I am using curl to post this document on the /update end point and I am
getting the following error

*org.apache.solr.common.SolrException: processing error: null.* title=Canon
powershow camera 9000,  text=&quot;Canon powershow camera 9000...&quot;
at
org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:107)
at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:147)
at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:77)
at
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:67)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1368)
at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:279)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.apache.solr.uima.processor.exception.FieldMappingException
*at
org.apache.solr.uima.processor.UIMAToSolrMapper.map(UIMAToSolrMapper.java:83)
*
* at
org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:85)
*
* ... 23 more*

What could be the problem?

Thanks for your time

Re: Solr UIMA integration problem

Posted by solr nps <so...@gmail.com>.
Thanks for the reply.

I changed it to 'coveredText' as you recommended but that did not help, I
got the same error message.

solrconfig.xml now looks like the following

<lst name="fieldMappings">
          <lst name="type">
            <str
name="name">org.apache.uima.alchemy.ts.concept.ConceptFS</str>
            <lst name="mapping">
              <str name="feature">coveredText</str>
              <str name="field">concept</str>
            </lst>
          </lst>
          <lst name="type">
            <str name="name">org.apache.uima.SentenceAnnotation</str>
            <lst name="mapping">
              <str name="feature">coveredText</str>
              <str name="field">sentence</str>
            </lst>
          </lst>
        </lst>

Let me know if you need anything more from me for debugging.

Thanks


On Wed, Aug 17, 2011 at 5:12 AM, Tommaso Teofili
<to...@gmail.com>wrote:

> At a first glance I think the problem is in the 'feature' element which is
> set to 'title'.
> The 'feature' element should contain a UIMA Feature of the type defined in
> element 'type'; for example for SentenceAnnotation [1] defined in HMM
> Tagger
> has 'only' the default features of a UIMA Annotation: begin, end and
> coveredText.
> So I think you should change the 'feature' elements' values to
> 'coveredText'
> which contains the text covered by the specified UIMA annotation.
> Hope this helps,
> Tommaso
>
>
> [1] :
>
> http://svn.apache.org/repos/asf/uima/addons/trunk/Tagger/src/main/java/org/apache/uima/SentenceAnnotation.java
>
> 2011/8/17 solr nps <so...@gmail.com>
>
> > Hello,
> >
> > I am using Solr 3.3. I have been following instructions at
> >
> >
> https://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_3/solr/contrib/uima/README.txt
> >
> > My setup looks like the following.
> >
> > solr lib directory contains the following jars
> >
> > apache-solr-uima-3.3.0.jar
> > commons-digester-2.0.jar
> > uima-an-alchemy-2.3.1-SNAPSHOT-r1062868.jar
> > uima-an-calais-2.3.1-SNAPSHOT-r1062868.jar
> > uima-an-tagger-2.3.1-SNAPSHOT-r1062868.jar
> > uima-an-wst-2.3.1-SNAPSHOT-r1076132.jar
> > uimaj-core-2.3.1.jar
> >
> >
> > solr_config.xml has the following changes.
> >
> >  <updateRequestProcessorChain name="uima">
> >        <processor
> > class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
> >      <lst name="uimaConfig">
> >        <lst name="runtimeParameters">
> >          <str name="keyword_apikey">MY_KEY</str>
> >          <str name="concept_apikey">MY_KEY</str>
> >          <str name="lang_apikey">MY_KEY</str>
> >          <str name="cat_apikey">MY_KEY</str>
> >          <str name="entities_apikey">MY_KEY</str>
> >          <str name="oc_licenseID">MY_SECOND_KEY</str>
> >        </lst>
> >        <str
> >
> >
> name="analysisEngine">/org/apache/uima/desc/OverridingParamsExtServicesAE.xml</str>
> >        <bool name="ignoreErrors">false</bool>
> >        <str name="logField">title</str>
> >        <lst name="analyzeFields">
> >          <bool name="merge">false</bool>
> >        *  <arr name="fields">*
> > *            <str>title</str>*
> > *          </arr>*
> >        </lst>
> >        <lst name="fieldMappings">
> >          <lst name="type">
> >            <str
> > name="name">org.apache.uima.alchemy.ts.concept.ConceptFS</str>
> >            <lst name="mapping">
> >              *<str name="feature">title</str>*
> > *              <str name="field">concept</str>*
> >            </lst>
> >          </lst>
> >          <lst name="type">
> >            <str name="name">org.apache.uima.SentenceAnnotation</str>
> >            <lst name="mapping">
> >         *     <str name="feature">title</str>*
> > *              <str name="field">sentence</str>*
> >            </lst>
> >          </lst>
> >        </lst>
> >      </lst>
> >    </processor>
> >
> > and
> >
> > <requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
> >            <lst name="defaults">
> >              <str name="update.processor">uima</str>
> >            </lst>
> >  </requestHandler>
> >
> > I am trying to index a simple document which looks like the following
> >
> > <add>
> > <doc>
> > <field name="docid">1456780001</field>
> > <field name=*"title"*>Canon powershow camera 9000</field>
> > </doc>
> > </add>
> >
> >
> > I am using curl to post this document on the /update end point and I am
> > getting the following error
> >
> > *org.apache.solr.common.SolrException: processing error: null.*
> title=Canon
> > powershow camera 9000,  text=&quot;Canon powershow camera 9000...&quot;
> > at
> >
> >
> org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:107)
> > at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:147)
> > at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:77)
> > at
> >
> >
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:67)
> > at
> >
> >
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
> > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1368)
> > at
> >
> >
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
> > at
> >
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> > at
> >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> > at
> >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> > at
> >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> > at
> >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> > at
> >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
> > at
> >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> > at
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> > at
> >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> > at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> > at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:279)
> > at
> >
> >
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> > at
> >
> >
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> > at java.lang.Thread.run(Thread.java:680)
> > Caused by: org.apache.solr.uima.processor.exception.FieldMappingException
> > *at
> >
> >
> org.apache.solr.uima.processor.UIMAToSolrMapper.map(UIMAToSolrMapper.java:83)
> > *
> > * at
> >
> >
> org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:85)
> > *
> > * ... 23 more*
> >
> > What could be the problem?
> >
> > Thanks for your time
> >
>

Re: Solr UIMA integration problem

Posted by Tommaso Teofili <to...@gmail.com>.
At a first glance I think the problem is in the 'feature' element which is
set to 'title'.
The 'feature' element should contain a UIMA Feature of the type defined in
element 'type'; for example for SentenceAnnotation [1] defined in HMM Tagger
has 'only' the default features of a UIMA Annotation: begin, end and
coveredText.
So I think you should change the 'feature' elements' values to 'coveredText'
which contains the text covered by the specified UIMA annotation.
Hope this helps,
Tommaso


[1] :
http://svn.apache.org/repos/asf/uima/addons/trunk/Tagger/src/main/java/org/apache/uima/SentenceAnnotation.java

2011/8/17 solr nps <so...@gmail.com>

> Hello,
>
> I am using Solr 3.3. I have been following instructions at
>
> https://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_3/solr/contrib/uima/README.txt
>
> My setup looks like the following.
>
> solr lib directory contains the following jars
>
> apache-solr-uima-3.3.0.jar
> commons-digester-2.0.jar
> uima-an-alchemy-2.3.1-SNAPSHOT-r1062868.jar
> uima-an-calais-2.3.1-SNAPSHOT-r1062868.jar
> uima-an-tagger-2.3.1-SNAPSHOT-r1062868.jar
> uima-an-wst-2.3.1-SNAPSHOT-r1076132.jar
> uimaj-core-2.3.1.jar
>
>
> solr_config.xml has the following changes.
>
>  <updateRequestProcessorChain name="uima">
>        <processor
> class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
>      <lst name="uimaConfig">
>        <lst name="runtimeParameters">
>          <str name="keyword_apikey">MY_KEY</str>
>          <str name="concept_apikey">MY_KEY</str>
>          <str name="lang_apikey">MY_KEY</str>
>          <str name="cat_apikey">MY_KEY</str>
>          <str name="entities_apikey">MY_KEY</str>
>          <str name="oc_licenseID">MY_SECOND_KEY</str>
>        </lst>
>        <str
>
> name="analysisEngine">/org/apache/uima/desc/OverridingParamsExtServicesAE.xml</str>
>        <bool name="ignoreErrors">false</bool>
>        <str name="logField">title</str>
>        <lst name="analyzeFields">
>          <bool name="merge">false</bool>
>        *  <arr name="fields">*
> *            <str>title</str>*
> *          </arr>*
>        </lst>
>        <lst name="fieldMappings">
>          <lst name="type">
>            <str
> name="name">org.apache.uima.alchemy.ts.concept.ConceptFS</str>
>            <lst name="mapping">
>              *<str name="feature">title</str>*
> *              <str name="field">concept</str>*
>            </lst>
>          </lst>
>          <lst name="type">
>            <str name="name">org.apache.uima.SentenceAnnotation</str>
>            <lst name="mapping">
>         *     <str name="feature">title</str>*
> *              <str name="field">sentence</str>*
>            </lst>
>          </lst>
>        </lst>
>      </lst>
>    </processor>
>
> and
>
> <requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
>            <lst name="defaults">
>              <str name="update.processor">uima</str>
>            </lst>
>  </requestHandler>
>
> I am trying to index a simple document which looks like the following
>
> <add>
> <doc>
> <field name="docid">1456780001</field>
> <field name=*"title"*>Canon powershow camera 9000</field>
> </doc>
> </add>
>
>
> I am using curl to post this document on the /update end point and I am
> getting the following error
>
> *org.apache.solr.common.SolrException: processing error: null.* title=Canon
> powershow camera 9000,  text=&quot;Canon powershow camera 9000...&quot;
> at
>
> org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:107)
> at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:147)
> at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:77)
> at
>
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:67)
> at
>
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1368)
> at
>
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
> at
>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
> at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:279)
> at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: org.apache.solr.uima.processor.exception.FieldMappingException
> *at
>
> org.apache.solr.uima.processor.UIMAToSolrMapper.map(UIMAToSolrMapper.java:83)
> *
> * at
>
> org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:85)
> *
> * ... 23 more*
>
> What could be the problem?
>
> Thanks for your time
>