我用solrj编写了一个简单的程序,索引文件但是经过一分钟后它就崩溃了 java.lang.OutOfmemoryError:出现java堆空间
我使用Eclipse并且我的内存存储大约为2GB,我为我的VM arg中的tomcat和我在Debug Configuration中的应用程序设置-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);
答案 0 :(得分:1)
你是否也在eclipse中运行java类时设置堆大小参数?
Run -> Run Configurations > <Class Name> > Arguments -> VM arguments
答案 1 :(得分:0)
Solr是否也和solrj在同一台机器上运行?运行Solr的计算机上可能存在内存限制。一旦启动Solr,你有多少可用内存? - 你可能需要更多内存。
尝试在每个文档后面提交一个提交,看看你是否可以暂时解决问题。