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="Canon powershow camera 9000..."
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="Canon powershow camera 9000..."
> > 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="Canon powershow camera 9000..."
> 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
>