Я хочу получить количество всех не удаленных документов индекса Lucene (.Net 2.4), а затем прочитать мои сохраненные поля всех или диапазона этих документов.После прочтения справки Lucene я не совсем уверен, возвращает ли IndexReader.NumDocs () счетчик всех документов или только не восстановленных.Могу ли я просто выполнить итерацию по IndexReader.Document [] и он содержит удаленные документы?
Если NumDocs () и Docmuent [] содержит , содержат как удаленные, так и не восстановленные документы, я полагаю,должны сделать что-то вроде этого:
int totalCount = reader.NumDocs();
int totalCountUndeleted = totalCount;
for (int iDoc = 0; iDoc < totalCount; iDoc++)
if (reader.IsDeleted(iDoc))
totalCountUndeleted--;
for (int iDoc = 0; iDoc < totalCount; iDoc++)
{
if (!reader.IsDeleted(iDoc))
{
Document doc = reader.Document(iDoc);
// read fields
}
}
Это правильный путь или есть какой-либо другой возможный путь?Спасибо