2017-09-18 43 views

回答

0

所以,我们对这个参数在Lucene的的javadoc:

确定可用于缓冲加入 文件和删除它们被刷新到该目录之前的RAM容量。 通常,为了加快索引性能,最好使用RAM 而不是文档计数,并使用与您的 一样大的RAM缓冲区。设置此项时,只要缓冲区 文档和删除使用了这么多的RAM,写入器就会刷新。

最大内存限制是由JVM可用的内存决定的。然而,IndexWriter会话会消耗比给定的RAM限制大得多的内存量,因为当将内存驻留文档刷新到目录时,此限制仅仅是 指示符。 冲洗可能会同时发生,而其他线程将 文档添加到作者。为了应用程序的稳定性,JVM中可用的内存应该明显大于用于索引的RAM缓冲区 。

默认情况下,Lucene使用16 Mb作为这个参数(这对我来说是指示,你不应该有那么大的参数才能有很好的索引速度)。我建议你通过设置它来调整这个参数,让我们说500 Mb并检查你的系统表现如何。如果你会崩溃,你可以尝试一些像200 Mb等较小的值,直到你的系统稳定。

是的,正如它在javadoc中说的那样,这个参数取决于JVM堆,但对于Python来说,我认为它可以没有任何限制地分配内存。