Пытаясь найти ошибку в нашем проекте, я нашел несколько вопросов об API индексации Lucene без ответа:
Первый связан со следующим фрагментом:
IndexWriter writer = //open an index for writings.
// ... do some heavy updates (inserts and deletes) to the index using 'writer'
IndexReader reader = writer.GetReader();
long[] idsArray = Field_Cache_Fields.DEFAULT.GetLongs(reader, "ID_Field");
//under the assumption that ALL indexed documents contain field with the name "ID_Field".
Обещано ли API Lucene, что читатель, который я получу, ВСЕГДА получит обновленный, даже если индекс не закоммутирован? Просто чтобы убедиться, что мой ответ ясен: каждый удаленный документ не будет виден читателю, и каждый добавленный документ будет ..
Второй вопрос связан со следующим фрагментом:
IndexWriter writer = //open an index for writing, but dont change a thing - just commit meta data.
writer.Commit["Hello"] = "World";
writer.Commit();
Обещано ли, что метаданные будут добавлены в индекс, даже если я открыл его без фактического изменения индекса?
В обоих вопросах я буду рад узнать, что подразумевается под API, а также, если кто-то узнает о проблемах (каких-либо ошибках?), Специфичных для Lucene .Net 2.9.2
спасибо, ребята!