Commit() выполняет отложенные, буферизованные изменения индекса (которые затем могут быть найдены с помощью IndexReader()). Затем IndexWriter может использоваться для дополнительных изменений. Close() также выполняет Commit(), но дополнительно закрывает IndexWriter. Обратите внимание, что IndexWriter реализует IDisposable(), и я рекомендую использовать его.
К вашему первому сведению, если вы имеете в виду, что есть много документов для индексации, это нормально. Вы можете использовать тот же IndexWriter для многих документов, не закрывая его. Просто пропустите все документы, которые вы хотите индексировать в том же IndexWriter, используя() оператор.
Что касается вашего второго примечания, вы должны выполнить commit() (или закрыть()), прежде чем изменения IndexWriter() будут видны IndexReader(). Вы всегда можете искать с помощью IndexReader(), но он будет видеть только индекс, как это было с момента последнего IndexWriter.Commit().
Я рекомендую Lucene In Action для этих важных деталей. Это очень помогло мне.
Помог ли мой ответ для вас? Вам нужна дополнительная информация? –
Большое вам спасибо. Ваша информация достаточно. – amir
Я рад это слышать. Вы знакомы с принятием ответа? Или что-то не хватает в моем ответе, который заставляет вас не принимать его? –