Сброс срабатывает, когда с момента последнего сброса достаточно документов.Сброс инициируется либо использованием документов в оперативной памяти (см. IndexWriterConfig.setRAMBufferSizeMB(double)
), либо количеством добавленных документов (см. IndexWriterConfig.setMaxBufferedDocs(int)
).
Это означает, что если вы хотите предотвратить сброс, вынеобходимо установить верхний предел для обоих этих значений, чтобы гарантировать, что как количество добавленных документов, так и использование ОЗУ будут меньше, чем ваши пределы.
Другой подход может состоять в том, чтобы передать IndexWriterConfig.DISABLE_AUTO_FLUSH
в setMaxBufferedDocs
или в setRAMBufferSizeMB
для предотвращения сброса из-за количества буферизованных документов или использования оперативной памяти.Обратите внимание, что, однако, вы не можете установить оба значения равными DISABLE_AUTO_FLUSH
, и, скорее всего, вы сможете определить количество документов проще, чем объем оперативной памяти
Кроме того, убедитесь, что вы используетеIndexWriter работает только в одном потоке (или правильно синхронизирован)
Источник: https://lucene.apache.org/core/7_6_0/core/org/apache/lucene/index/IndexWriter.html