Как использовать поле из индекса для удаления записи?

Я разрабатываю поисковую систему для настольных компьютеров в VB 9 с использованием Lucene.NET.

Я хочу удалить и создать новую запись для обновляемого файла.

Индекс хранит полный путь к файлу и дату последнего изменения.

doc.Add(New Field("path", filepath, Field.Store.YES, Field.Index.UN_TOKENIZED))
doc.Add(New Field("modified", New FileInfo(filepath).LastWriteTime, Field.Store.YES, Field.Index.UN_TOKENIZED))
.
.

Я использую IndexReader, чтобы проверить, присутствует ли файл в индексе (чтобы избежать повторной индексации одних и тех же файлов).

Dim reader As IndexReader = IndexReader.Open(SearchForm.IndexFolderTextBox.Text)

If reader.DocFreq(New Term("path", filepath)) = 0 Then
     addFile(filepath)
End If

reader.Close()

У меня есть следующие сомнения:

  1. Как использовать значение в поле modified, чтобы проверить, устарела ли запись индекса для определенного файла? Какая функция IndexReader позволит мне это сделать?

  2. Как получить номер документа (docNum) для функции deleteDocument()


person user57175    schedule 26.01.2009    source источник


Ответы (1)


Чтобы ответить на ваши вторые вопросы, используйте следующий метод IndexReader:

public int deleteDocuments(Term term)

поэтому вам не понадобится номер документа.

person KenE    schedule 27.01.2009