将uima沙发映射到solrconfig.xml中的solr字段

时间:2015-01-04 08:22:49

标签: solr lucene uima

我正在尝试将UIMA与Solr联系起来。我已经使用solr测试了使用uimaj-examples的RoomNumberAnnotator示例,并且它成功运行。我按照下面的教程链接:

http://wiki.apache.org/solr/Solr4UIMA

https://svn.apache.org/repos/asf/lucene/dev/trunk/solr/contrib/uima/README.txt

但现在我想用solr 测试uimaj-examples的SofaExampleAnnotator。 此uima AE将英语内容翻译为德语内容,并将德语标记添加到索引中。它与lucene一起正常工作。我把这个例子的analysisEngineDescriptor.xml放在apache-uima文件夹中。

<?xml version="1.0" encoding="UTF-8"?>
<!--
 ***************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
     *
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 ***************************************************************
  -->
 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
<primitive>true</primitive>
<annotatorImplementationName>org.apache.uima.examples.SofaExampleAnnotator</annotatorImplementationName>
<analysisEngineMetaData>
    <name>English to German translator</name>
    <description>Creates output SOFA in de CAS</description>
    <version>1.0</version>
    <vendor>The Apache Software Foundation</vendor>
    <configurationParameters/>
<configurationParameterSettings/>
<typeSystemDescription>
        <types>
            <typeDescription>
                <name>sofa.test.CrossAnnotation</name>
                <description/>
                <supertypeName>uima.tcas.Annotation</supertypeName>
                <features>
                    <featureDescription>
                        <name>otherAnnotation</name>
                        <description/>
                        <rangeTypeName>uima.tcas.Annotation</rangeTypeName>
                    </featureDescription>
                </features>
            </typeDescription>
        </types>
    </typeSystemDescription>
    <typePriorities/>
<fsIndexCollection/>
<!--
    Capabilities: Inputs, Outputs, and Preconditions
    -->
    <capabilities>
        <capability>
            <inputs/>
            <outputs>
                <type allAnnotatorFeatures="true">sofa.test.CrossAnnotation</type>
            </outputs>
            <inputSofas>
                <sofaName>EnglishDocument</sofaName>
            </inputSofas>
            <outputSofas>
                <sofaName>GermanDocument</sofaName>
            </outputSofas>
            <languagesSupported>
                <language>x-unspecified</language>
            </languagesSupported>
        </capability>
    </capabilities>
    <operationalProperties>
        <modifiesCas>true</modifiesCas>
        <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
        <outputsNewCASes>false</outputsNewCASes>
    </operationalProperties>
</analysisEngineMetaData>
<resourceManagerConfiguration/>
</analysisEngineDescription>

我在schema.xml中添加了以下标记。

 <field name="sentence" type="string" indexed="true" stored="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true" />

事实上,我想将德语代币添加到&#34;句子&#34; solr的领域,我不知道该怎么做。  为此,我在solrconfig.xml中添加以下标签。

<updateRequestProcessorChain name="uima" default="true">
  <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
    <lst name="uimaConfig">
      <lst name="runtimeParameters">
      </lst>
 <str name="analysisEngine">/descriptors/analysis_engine/SofaExampleAnnotator.xml</str> 
    <bool name="ignoreErrors">false</bool>
      <lst name="analyzeFields">
        <bool name="merge">false</bool>
        <arr name="fields">
      <str>sentence</str>   
       </arr>
     </lst> 
<lst name="fieldMappings">

   <lst name="type">
      <str name="name">sofa.test.CrossAnnotation</str>
      <lst name="mapping">
        <str name="feature">otherAnnotation</str>
        <str name="field">sentence</str>
      </lst>
    </lst>

 </lst>  

 </lst>       
    </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />

我收到了这个错误:

SEVERE: Exception occurred
org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator processing failed.    
at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:391)
at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:295)
at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:267)
at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:280)
at org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processText(UIMAUpdateRequestProcessor.java:162)
at org.apache.solr.uima.processor.UIMAUpdateRequestProcessor.processAdd(UIMAUpdateRequestProcessor.java:80)
at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1816)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:656)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:359)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:948)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.uima.cas.CASRuntimeException: No sofaFS with name EnglishDocument found.
at org.apache.uima.cas.impl.CASImpl.getSofa(CASImpl.java:661)
at org.apache.uima.cas.impl.CASImpl.getView(CASImpl.java:2658)
at org.apache.uima.examples.SofaExampleAnnotator.process(SofaExampleAnnotator.java:44)
at org.apache.uima.analysis_component.CasAnnotator_ImplBase.process(CasAnnotator_ImplBase.java:56)
at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:377)
... 39 more

如果有人回答我,我会很高兴的

0 个答案:

没有答案