2015-05-21 46 views
1

我通過JOIN查詢加入了2個mysql表,並通過SOLR中的DIH導入了數據。從MySQL導入JOIN表時數據已被自動刪除

但是,一半記錄自動刪除。我通過閱讀numDocs,maxDocs & deletedDocs值來了解這一點。

我檢查,我在數據-config.xml中以及在schema.xml中文件已經被定義在表中的所有領域。

這是什麼問題?

請幫我。

+0

deletedDocs:我認爲它必須是對現有文檔的替換...... numDocs,maxDocs&deletedDocs的數量是多少? –

+0

民文檔:821 最大文件:1981年 刪除文件:1160 –

+0

此計數是當我刪除我的核心並重新導入數據 –

回答

1

它的一個替換現有文檔的

numDocs+DeletedDocs = MaxDocs 
(821+1160=1981) 

numDocs表示在索引 maxDoc可以是本numDoc計數更大,因爲它包括邏輯刪除尚未被從取出文檔搜索的文檔的數目該指數。

如果您重新編制索引/ repost numDocs永遠不會增加,因爲新文檔會不斷地取代舊的...嘗試優化索引,它可能會刪除邏輯刪除的文檔/索引。

的唯一的鍵字段

<uniqueKey></uniqueKey> 

<uniqueKey>聲明可以用來告知Solr的,有你的索引字段,它應該是所有的文件是唯一的。如果添加的文檔與現有文檔包含相同的值,則舊文檔將被刪除。

+0

謝謝你。但是,我的問題是爲什麼它被刪除?我的mysql數據是1981年,但爲什麼它只允許821文檔?爲什麼它被刪除? –

+0

你的schema.xml中的uniqueKey是什麼?以及你的mysql數據庫有多少條目?我的意思是在MySQL的主鍵以及? –

+0

主**用戶**表具有** ID **唯一密鑰。另一個表具有相同的唯一鍵,但** user.id = tal.userid ** –

相關問題