2013-07-01 27 views
0

我試圖使用數據導入處理程序索引solr 4.3.0中的pdf文件索引。索引pdf文件時出現唯一鍵錯誤

我的請求處理程序 -

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

我的數據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字段(唯一鍵)。我如何解決這個問題?

在此先感謝

回答

0

唯一密鑰在Solr中不是強制性的。
因此,檢查schema.xml中的uniquekey元素,然後可以將其移除<uniqueKey>id</uniqueKey>

此外,如果存在,請從ID中刪除所需的屬性。

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

刪除升級組件,如果它引用id並導致異常。