Apache LuceneでOutOfMemoryエラーが発生しました。ここでApache LuceneのOutOfMemory
は、問題のコードです:ここで
DirectoryReader oldReader = directoryReader;
DirectoryReader newReader = DirectoryReader.openIfChanged(directoryReader);
if ((newReader != null) & (oldReader != newReader)) {
directoryReader = newReader;
}
はログです:
Caused by: java.lang.OutOfMemoryError: Java Heap Space
at java.lang.Class.getMethodImpl(Native Method)
at java.lang.Class.getMethod(Class.java:917)
at org.apache.lucene.store.MMapDirectory$MMapIndexInput$1.run(MMapDirectory.java:244)
at org.apache.lucene.store.MMapDirectory$MMapIndexInput$1.run(MMapDirectory.java:241)
at java.security.AccessController.doPrivileged(AccessController.java:327)
at org.apache.lucene.store.MMapDirectory$MMapIndexInput.freeBuffer(MMapDirectory.java:241)
at org.apache.lucene.store.ByteBufferIndexInput.close(ByteBufferIndexInput.java:295)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:788)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:694)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:400)
at org.apache.lucene.index.StandardDirectoryReader.isCurrent(StandardDirectoryReader.java:349)
at org.apache.lucene.index.StandardDirectoryReader.doOpenNoWriter(StandardDirectoryReader.java:303)
at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:266)
at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:254)
at org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:170)
問題になる可能性がどのような任意のアイデア、?あなたがMMapDirectoryを使用しているので、あなたは注意する必要があります
ように私は思う、あなたのチャンクサイズを調整するか、ディレクトリの他の実装を選択考慮する他の2つの実装サブクラスと比較して私はデフォルトのチャンクサイズ(64ビットJVMの場合は1 GB)を変更していないので、チャンクサイズを調整するにはどうすればよいか分かりません。 –
ulimitを無制限に変更すると、OOMエラーが防止されると思いますか? –