Solr dse搜索apache uima集成

Solr dse搜索apache uima集成,solr,datastax-enterprise,uima,datastax-startup,Solr,Datastax Enterprise,Uima,Datastax Startup,我在CentOS 7.3.1611(Core)上安装了DSE 5.1和solr 6.0.1。以及在eclipse中为注释器项目配置的UIMA 我遵循Solr文件: 使用UIMA创建的项目有一个简单的注释器来获取人名,已经可以在UIMA的CAS可视化调试器中正常工作。jar已经在solr-lib目录(DSE_-HOME/solr/lib)中创建和复制。这里还有用于集成uima的solr-jar(solr_-HOME/contrib/uima/lib、solr_-HOME/contrib/uima

我在CentOS 7.3.1611(Core)上安装了DSE 5.1和solr 6.0.1。以及在eclipse中为注释器项目配置的UIMA

我遵循Solr文件:

使用UIMA创建的项目有一个简单的注释器来获取人名,已经可以在UIMA的CAS可视化调试器中正常工作。jar已经在solr-lib目录(DSE_-HOME/solr/lib)中创建和复制。这里还有用于集成uima的solr-jar(solr_-HOME/contrib/uima/lib、solr_-HOME/contrib/uima/lucene-lib、solr_-HOME/dist/solr-uima版本)

我在cassandra中创建的表是:

CREATE TABLE uima_solr.person_annotator (
    id int PRIMARY KEY,
    apellido text,
    nombre text,
    nombrecompleto text,
    solr_query text,
    uimaname set<text>
创建表uima\u solr.person\u注释器(
id int主键,
阿佩利多文本,
名义文本,
nombrecompleto文本,
solr_查询文本,
uimaname套装
solr核心使用以下模式:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema name="autoSolrSchema" version="1.5">
  <types>
    <fieldType class="org.apache.solr.schema.TextField" name="TextField">
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    <fieldType class="org.apache.solr.schema.TrieIntField" name="TrieIntField"/>
  </types>
  <fields>
    <field indexed="true" multiValued="false" name="nombrecompleto" stored="true" type="TextField"/>
    <field indexed="true" multiValued="false" name="apellido" stored="true" type="TextField"/>
    <field indexed="true" multiValued="false" name="nombre" stored="true" type="TextField"/>
    <field docValues="true" indexed="true" multiValued="false" name="id" stored="true" type="TrieIntField"/>
    <field indexed="true" multiValued="false" name="all" stored="false" type="TextField"/>
    <field indexed="true" multiValued="true" name="uimaname" stored="true" type="TextField"/>
  </fields>
  <uniqueKey>id</uniqueKey>
  <defaultSearchField>all</defaultSearchField>
  <copyField source="nombrecompleto" dest="all"/>
  <copyField source="apellido" dest="all"/>
  <copyField source="nombre" dest="all"/>
</schema>

身份证件
全部的
solr_配置如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<config>
  <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
  <luceneMatchVersion>LUCENE_6_0_0</luceneMatchVersion>
  <dseTypeMappingVersion>2</dseTypeMappingVersion>
  <directoryFactory class="solr.StandardDirectoryFactory" name="DirectoryFactory"/>
  <indexConfig>
    <rt>false</rt>
    <useCompoundFile>false</useCompoundFile>
    <ramBufferSizeMB>512</ramBufferSizeMB>
    <mergeFactor>10</mergeFactor>
    <reopenReaders>true</reopenReaders>
    <deletionPolicy class="solr.SolrDeletionPolicy">
      <str name="maxCommitsToKeep">1</str>
      <str name="maxOptimizedCommitsToKeep">0</str>
    </deletionPolicy>
    <infoStream file="INFOSTREAM.txt">false</infoStream>
  </indexConfig>
  <jmx/>
  <updateHandler class="solr.DirectUpdateHandler2">
    <autoSoftCommit>
      <maxTime>10000</maxTime>
    </autoSoftCommit>
  </updateHandler>
  <query>
    <maxBooleanClauses>1024</maxBooleanClauses>
    <filterCache class="solr.SolrFilterCache" highWaterMarkMB="256" lowWaterMarkMB="128"/>
    <enableLazyFieldLoading>true</enableLazyFieldLoading>
    <useColdSearcher>true</useColdSearcher>
    <maxWarmingSearchers>16</maxWarmingSearchers>
  </query>
  <requestDispatcher handleSelect="true">
    <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048000"/>
    <httpCaching never304="true"/>
  </requestDispatcher>
  <requestHandler class="solr.SearchHandler" default="true" name="search">
    <lst name="defaults">
      <int name="rows">10</int>
    </lst>
  </requestHandler>
  <requestHandler class="com.datastax.bdp.search.solr.handler.component.CqlSearchHandler" name="solr_query">
    <lst name="defaults">
      <int name="rows">10</int>
    </lst>
  </requestHandler>
  <!--<requestHandler class="solr.UpdateRequestHandler" name="/update"/>-->
  <requestHandler class="solr.UpdateRequestHandler" name="/update/csv" startup="lazy"/>
  <requestHandler class="solr.UpdateRequestHandler" name="/update/json" startup="lazy"/>
  <requestHandler class="solr.FieldAnalysisRequestHandler" name="/analysis/field" startup="lazy"/>
  <requestHandler class="solr.DocumentAnalysisRequestHandler" name="/analysis/document" startup="lazy"/>
  <requestHandler class="solr.admin.AdminHandlers" name="/admin/"/>
  <requestHandler class="solr.PingRequestHandler" name="/admin/ping">
    <lst name="invariants">
      <str name="qt">search</str>
      <str name="q">solrpingquery</str>
    </lst>
    <lst name="defaults">
      <str name="echoParams">all</str>
    </lst>
  </requestHandler>
  <requestHandler class="solr.DumpRequestHandler" name="/debug/dump">
    <lst name="defaults">
      <str name="echoParams">explicit</str>
      <str name="echoHandler">true</str>
    </lst>
  </requestHandler>
  <admin>
    <defaultQuery>*:*</defaultQuery>
  </admin>



  <updateRequestProcessorChain default="true" name="uima">
    <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
      <lst name="uimaConfig">
        <lst name="runtimeParameters"></lst>
        <!-- Under $SOLR_HOME/solr/example-->
        <str name="analysisEngine">desc/descPersonAnnotator.xml</str>
        <bool name="ignoreErrors">false</bool>
        <lst name="analyzeFields">
          <bool name="merge">false</bool>
          <arr name="fields">
            <str>nombrecompleto</str>
          </arr>
        </lst>
        <lst name="fieldMappings">
          <lst name="type">
            <str name="name">org.apache.uima.annotator.person</str>
            <lst name="mapping">
              <str name="feature">name</str>
              <str name="field">uimaname</str>
            </lst>
          </lst>
        </lst>
      </lst>
    </processor>
    <processor class="solr.LogUpdateProcessorFactory"/>
    <processor class="solr.RunUpdateProcessorFactory"/>
  </updateRequestProcessorChain>
  <requestHandler class="solr.UpdateRequestHandler" name="/update">
    <lst name="defaults">
      <str name="update.processor">uima</str>
    </lst>
  </requestHandler>


</config>

${solr.abortOnConfigurationError:true}
LUCENE_6_0_0
2.
假的
假的
512
10
真的
1.
0
假的
10000
1024
真的
真的
16
10
10
搜索
solrpingquery
全部的
明确的
真的
*:*
desc/descPersonAnnotator.xml
假的
假的
诺姆布雷科姆普莱托
org.apache.uima.annotator.person
名称
乌伊马纳姆
尤马
当我使用CQL插入数据时,数据已在Lucene中正确索引,搜索工作正常,但uima注释器不工作。此外,当我将文档上载到solr trought Sol命令时,文档已成功索引,搜索也在CQL中工作,但uima不工作。我检查了日志,没有显示任何错误

我在Solr Apache发行版(v6.0.1)中执行了相同的过程,并且它可以按预期工作


我没有看到DSE_HOME中的核心文件可以方便地编辑文件,我也没有在DSE搜索中成功地进行UIMA集成创建,我在DSE搜索的核心配置中缺少什么?

通过不遵循Solr文档过程找到答案,而使用DSE文档,特别是[2017-07-17]

DSE[2017-07-17]中有一个例子

上面链接中的过程展示了如何在索引时映射字段

此过程允许使用Solr命令和cql with Solr_查询对添加的元数据进行搜索