При создании нового индекса в первый раз параметр create
для конструктора IndexWriter должен иметь значение true.С этого момента для него должно быть установлено значение false, в противном случае ранее сохраненное содержимое индекса будет переопределено.Я бы изменил свой код для определения файлов индекса перед созданием нового экземпляра IndexWriter.
Этот код можно использовать для тренировки, если существуют файлы индекса
private bool IndexExists(string sIndexPath)
{
return IndexReader.IndexExists(sIndexPath))
}
Затем создайте экземпляр IndexWriterкак это:
IndexWriter writer = new IndexWriter(
FSDirectory.open(new File(INDEX_DIR)),
new StandardAnalyzer(Version.LUCENE_CURRENT),
IndexExists(INDEX_DIR) == false, // <-- This is what I mean
IndexWriter.MaxFieldLength.UNLIMITED);