0

我用 solrj 编写了一个简单的程序来索引文件,但是一分钟后它崩溃了并且 java.lang.OutOfmemoryError : java heap space 出现

我使用 Eclipse,我的内存存储大约 2GB,我在调试配置中为我的 tomcat 的 VM arg 和我的应用程序设置了 -Xms1024M-Xmx2048M,并取消注释 solrconfig 中的 maxBufferedDocs 并将其设置为 100,然后再次运行应用程序,但它崩溃了很快当它到达大于 500MB 的文件时

有没有用 solrj 索引大文件的配置?我的 solrj 的详细信息如下:

String urlString = "http://localhost:8983/solr/file"; 
CommonsHttpSolrServer solr = new CommonsHttpSolrServer(urlString); 

ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract"); 

req.addFile(file); 
req.setParam("literal.id", file.getAbsolutePath()); 
req.setParam("literal.name", file.getName()); 
req.setAction(ACTION.COMMIT, true, true); 

solr.request(req); 
4

2 回答 2

1

在 eclipse 中运行 java 类时,您是否还设置了堆大小参数?

Run -> Run Configurations > <Class Name> > Arguments -> VM arguments
于 2011-09-30T13:02:37.540 回答
0

Solr 是否也与 solrj 在同一台机器上运行?运行 Solr 的机器上可能存在内存限制。启动 Solr 后,您有多少可用内存?- 您可能需要在该盒子上提供更多内存。

尝试在每个文档之后进行提交,看看是否可以暂时解决问题。

于 2011-09-30T18:00:55.587 回答