2017-09-18 45 views

回答

0

所以,我們對這個參數在Lucene的的javadoc:

確定可用於緩衝加入 文件和刪除它們被刷新到該目錄之前的RAM容量。 通常,爲了加快索引性能,最好使用RAM 而不是文檔計數,並使用與您的 一樣大的RAM緩衝區。設置此項時,只要緩衝區 文檔和刪除使用了這麼多的RAM,寫入器就會刷新。

最大內存限制是由JVM可用的內存決定的。然而,IndexWriter會話會消耗比給定的RAM限制大得多的內存量,因爲當將內存駐留文檔刷新到目錄時,此限制僅僅是 指示符。 沖洗可能會同時發生,而其他線程將 文檔添加到作者。爲了應用程序的穩定性,JVM中可用的內存應該明顯大於用於索引的RAM緩衝區 。

默認情況下,Lucene使用16 Mb作爲這個參數(這對我來說是指示,你不應該有那麼大的參數纔能有很好的索引速度)。我建議你通過設置它來調整這個參數,讓我們說500 Mb並檢查你的系統表現如何。如果你會崩潰,你可以嘗試一些像200 Mb等較小的值,直到你的系統穩定。

是的,正如它在javadoc中說的那樣,這個參數取決於JVM堆,但對於Python來說,我認爲它可以沒有任何限制地分配內存。