Я хочу записать индекс Lucene в памяти на диск, поверх первоначально загруженного индекса.В настоящее время, если я звоню Directory.Copy( _ramDirectory, _fileSystemDirectory, false )
, он просто добавляет новые файлы в каталог, но оставляет старые (устаревшие) там.
Я пытался позвонить:
new IndexWriter( _fsd, _analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED ).Close();
... (создать новый пустой индекс в каталоге), но это ведет к странному поведению и иногда приводит к чистке всего индекса при следующем запуске программы.
Есть ли способ, которым я могу просто получить списокфайлы, которые в настоящее время использует индекс файловой системы, чтобы я мог удалить их вручную?Я не хочу слепо стирать все файлы в каталоге, если там есть неиндексированные файлы.
Видимо FSDirectory.ListAll()
перечисляет все файлы в физическом каталоге, независимо от того, являются ли они на самом деле частьюиндекс.Есть ли какой-нибудь способ, которым я могу сказать, используется ли определенный файл / создан индексом?Я имею в виду, что даже не могу проверить расширения файлов из-за странных соглашений Lucene об именах файлов.