【问题标题】:Unique key error while indexing pdf files索引 pdf 文件时出现唯一键错误
【发布时间】:2013-07-01 11:27:41
【问题描述】:

我正在尝试使用数据导入处理程序在 solr 4.3.0 中索引 pdf 文件。

我的请求处理程序 -

<requestHandler name="/dataimport1" 
class="org.apache.solr.handler.dataimport.DataImportHandler">  
    <lst name="defaults">  
      <str name="config">data-config1.xml</str>  
    </lst>  
  </requestHandler>  

我的 data-config1.xml

<dataConfig>  
<dataSource type="BinFileDataSource" />  
<document>  
<entity name="f" dataSource="null" rootEntity="false" 
processor="FileListEntityProcessor" 
baseDir="C:\Users\aroraarc\Desktop\Impdo" fileName=".*pdf" 
recursive="true">  
<entity name="tika-test" processor="TikaEntityProcessor" 
url="${f.fileAbsolutePath}" format="text">  
<field column="Author" name="author" meta="true"/>
<field column="title" name="title" meta="true"/>
<field column="text" name="text"/>
</entity>  
</entity>  
</document>  
</dataConfig>  

现在当我尝试索引文件时,我收到以下错误 -

org.apache.solr.common.SolrException: Document is missing mandatory uniqueKey field: id 
        at org.apache.solr.update.AddUpdateCommand.getIndexedId(AddUpdateCommand.java:88) 
        at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:517) 
        at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:396) 
        at org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100) 
        at org.apache.solr.handler.dataimport.SolrWriter.upload(SolrWriter.java:70) 
        at org.apache.solr.handler.dataimport.DataImportHandler$1.upload(DataImportHandler.java:235) 
        at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:500) 
        at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:491) 
        at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:404) 
        at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:319) 
        at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:227) 
        at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:422) 
        at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:487) 
        at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:468)

在数据库索引的情况下可以轻松解决此问题,但我不知道如何处理文档的唯一键。我如何定义 pdf 文件的 id 字段(唯一键)。我该如何解决这个问题?

提前致谢

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    在 Solr 中,唯一密钥不是强制性的。
    因此,请检查 schema.xml 中的 uniquekey 元素,您可以将其删除,例如&lt;uniqueKey&gt;id&lt;/uniqueKey&gt;

    此外,如果存在,则从 id 中删除所需的属性。

    <field name="id" type="uuid" indexed="true" stored="true" required="true"/>
    

    删除elevate组件,如果它引用了id并导致异常。

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2015-03-22
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      相关资源
      最近更新 更多