使用Lucene时Java异常

问题描述:

您好我尝试过使用Lucene插件的程序。我有多个索引,用于搜索我使用“ParallelMultiSearcher”的多个索引。但在搜索时,我一次又一次地得到异常“线程中的异常”“线程-2”java.lang.OutOfMemoryError:请求的数组大小超过VM限制“。我使用eclipse Helio IDE,UBUNTU 10.04操作系统(32位)。 3GB RAM。 Lucene 3.0.3版本。 10个索引文件,每个包含100个记录(csv文件,10个字段)。 VM参数设置-Xmx1024m -XX:MaxPermSize = 1024m。但我试图增加,有些时候我得到虚拟机初始化期间发生错误无法为对象堆预留足够的空间。即使我缩小了文件大小并尝试了,而改为10个文件,我减少到1个文件,一次又一次,我得到相同的错误。请为上述建议解决方案。预先感谢您......使用Lucene时Java异常

+0

你能粘贴你的代码吗?因为您的数据太小而不会导致此类异常。我得到了同样的例外,但是使用40GB索引(分解为10个索引)。你可能在你的代码中有一个错误。 – Skarab 2011-01-28 11:49:52

+0

在本次讨论中检查Kai Chan的建议 - http://*.com/questions/3556870/what-is-the-biggest-size-number-of-documents-of-index-java-lucene-3-0- 2-on-32。 – Skarab 2011-01-28 11:51:34

在32位Ubuntu上,JVM进程在遇到硬件强制限制之前可能会要求2Gb的堆内存。通过请求1Gb的permgen堆,你已经烧掉了一半。这似乎方式对我来说太多了。试用〜1.8Gb的普通堆和200Mb的permgen。