【发布时间】:2012-09-14 17:07:35
【问题描述】:
我有一个 Lucene 索引,其中包含来自 1740 本书的 50571 个文档。我有两个创建此索引的进程。第一个过程是逐个文档在设备上创建索引。这个过程非常缓慢。另一个过程是在服务器上创建图书索引(与我在设备上创建它的方式完全相同)并下载并将其与主索引合并。这个创建主索引要快得多。无论哪种方式,创建索引都可以正常工作。
问题是,当我在下载合并索引上搜索时,我得到一个 OutOfMemoryException,但是当我使用在设备上创建的索引进行搜索时,我没有得到那个错误。我逐本书(下载合并)浏览并创建了索引书,并在每本书被索引后进行搜索;基于此,当我预订〜450时,我开始收到OutOfMemoryException。
是什么导致我内存不足。
【问题讨论】:
-
目前无法判断您的代码中是什么导致了这种情况。将异常堆栈跟踪和涉及的代码附加到您的问题中。我怀疑您构建了某种大数据结构来一次将所有数据保存在内存中。那个可能太大了。如果是这种情况,则分块处理数据。