用于名词短语注释器的Apache UIMA + Apache Solr集成

时间:2015-12-08 11:24:11

标签: apache solr lucene uima

我正在开发Apache UIMA + Apache Solr集成。首先,我将Apache UIMA与eclipse集成在一起。我在eclipse中实现了NOUN短语注释器并运行了一些例子。

通过在句子中找到名词,它运作良好并给出了准确的结果。

现在我正在尝试使用Solr实现UIMA。我按照以下链接进行了相同的操作:

https://wiki.apache.org/solr/SolrUIMA

我已经在apache solr lib目录中导出了eclipse项目的工作JAR文件,并包含了其他必要的jar文件。

这是我的solrconfig xml更改:

            <lib dir="../../../contrib/uima/lib" />

            <lib dir="../../../contrib/uima/lucene-libs" />

            <lib dir="../../../dist/" regex="solr-uima-\d.*\.jar" />       

            <lib dir="C:\apache-uima\lib" />



            <requestHandler name="/update" class="solr.UpdateRequestHandler">

                            <lst name="defaults">

                              <str name="update.processor">uima</str>

                            </lst>

            </requestHandler>



            <updateRequestProcessorChain name="uima" default="true">

              <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">

                            <lst name="uimaConfig">

                              <lst name="runtimeParameters">

                              </lst>

                              <str name="analysisEngine">/desc/NounPhraseAnnotator.xml</str>

                              <bool name="ignoreErrors">false</bool>

                              <str name="logField">id</str>

                              <lst name="analyzeFields">

                                            <bool name="merge">false</bool>

                                            <arr name="fields">

                                              <str>text</str>

                                            </arr>

                              </lst>

                              <lst name="fieldMappings">

                                            <lst name="type">

                                              <str name="name">org.apache.uima.tutorial.NounPhraseAnnotation</str>

                                              <lst name="mapping">

                                                            <str name="feature">nounText</str>

                                                            <str name="field">uimanounphrase</str>

                                              </lst>

                                            </lst>



                              </lst>

                            </lst>

              </processor>

              <processor class="solr.LogUpdateProcessorFactory" />

              <processor class="solr.RunUpdateProcessorFactory" />

            </updateRequestProcessorChain>

Schema.xml更改:

            <field name="uimanounphrase" type="string" indexed="true" stored="true" multiValued="true" required="false"/>

然后我索引了一些文档并运行了solr实例。但是当我执行查询时,名词不会进入uimanounphrase字段。空值显示在该字段中。

1 个答案:

答案 0 :(得分:0)

您必须先生成PEAR文件并进行安装。完成后,您可以将AE.xml添加到solr配置中以使其正常工作。

步骤1:从注释器实现生成PEAR文件。如果你有Eclipse的UIMA插件,你可以使用Eclipse来做到这一点。

步骤2:安装PEAR文件。您可以使用apache-uima包(runPearInstaller.bat)中提供的脚本。您还可以通过运行cvd.bat来测试您的pear文件是否正常工作。

步骤3:创建一个注释器引擎xml文件(例如:OpenNLP_AE.xml),您可以将其与solrconfig.xml集成

参考文献:https://uima.apache.org/doc-uima-pears.html。这个链接有关于如何执行上述操作的指示。

希望这有帮助。