2012-09-27 25 views
0

我使用Solr的到40M左右的項目指標,以及最終的索引文件大約是20G。下面是一個增量導入後的消息:索引編制完成後DataImportHandler做了什麼?

<lst name="statusMessages"> 
<str name="Time Elapsed">0:51:44.149</str> 
<str name="Total Requests made to DataSource">1</str> 
<str name="Total Rows Fetched">5634016</str> 
<str name="Total Documents Skipped">0</str> 
<str name="Full Dump Started">2012-09-27 01:25:17</str> 
<str name=""> 
Indexing completed. Added/Updated: 5634016 documents. Deleted 0 documents. 
</str> 

我想知道Solr的是這樣做的狀態? ?和消息複製命令=細節回報是:

<lst name="masterDetails"> 
<str name="indexSize">36.69 GB</str> 

該指數近一倍,並且仍然會更大。這讓我非常困惑。我正在做delta導入,爲什麼索引在更換時會是雙倍大小?

回答

0

如果您要更換大部分的文件這是正常的。 lucene中的更新由刪除和重新插入文檔組成,因爲索引段是一次寫入的。當你刪除一個文檔時,你並不是真的刪除它,而只是將它標記爲已刪除,因爲這些分段是一次寫入的。

刪除文件將真正被刪除時,在下一個合併發生,當一個新的更大的部分將出來,你有小部分的創建。那時你應該看到索引尺寸的減小。這意味着您的索引大小不僅應該增加。根據使用中的合併政策,合併或多或少地發生。如果要手動強制合併,可以使用forceMerge操作,這是優化的新名稱。根據使用的solr版本,您需要使用第一個或第二個。要小心,因爲forceMerge需要一段時間,如果你有很多文件。看看this文章吧。

+0

我已經成立,我的指標只有一個單一的段,這可能是導致很長一段時間來增量導入的原因。我將嘗試設置maxMergeDocs。 – bata

+0

不錯,如果您覺得它有用,您可能想要接受或贊成答案。 – javanna

0

Solr的3.6之前,dataImportHandler設置優化=真默認:

http://wiki.apache.org/solr/DataImportHandler

這觸發所有段的合併成一個不管其他設置。我想你可以通過添加一個優化複選框到debug.jsp來解決這個問題,儘管我沒有真正嘗試過。

相關問題