Я создаю индекс Lucene на 64-битной платформе, используя Lucene 7.2.1.
Проблема заключается в том, что иногда после фиксации, когда запускается слияние, получается OutOfMemoryError или AssertionError.
Это какая-то проблема с повреждением индекса?из-за чего readPositions читает неверное высокое значение.Было бы полезно узнать, что может вызвать эти ошибки и какие шаги можно предпринять, чтобы их избежать.
Подробности:
Размер моего индекса небольшой (<100 МБ).Использование файла MMAP. </p>
Я не хотел бы увеличивать размер кучи (в настоящее время 1024 МБ)
maxMerge размер сегментов был установлен на 100 МБ, поэтому Lucene не должен пытаться объединить сегменты больше этогоразмер.
политика слияния: LogByteSizeMergePolicy
коэффициент слияния: 4
стек вызовов OutOfMemoryError
java.lang.OutOfMemoryError: Failed to allocate
at org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.readPositions(CompressingTermVectorsReader.java:637)
at org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get(CompressingTermVectorsReader.java:432)
at org.apache.lucene.codecs.compressing.CompressingTermVectorsWriter.merge(CompressingTermVectorsWriter.java:834)
at org.apache.lucene.index.SegmentMerger.mergeVectors(SegmentMerger.java:224)
at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:158)
at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4443)
at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4083)
at org.apache.lucene.index.IndexWriter.maybeMerge(IndexWriter.java:2247)
at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3471)
at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3423)
стек вызовов ошибок подтверждения
java.lang.AssertionError
org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get(CompressingTermVectorsReader.java:321)
org.apache.lucene.codecs.compressing.CompressingTermVectorsWriter.merge(CompressingTermVectorsWriter.java:834)
org.apache.lucene.index.SegmentMerger.mergeVectors(SegmentMerger.java:224)
org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:158)
org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4443)
org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4083)