0

Lucene.NETを使用してVB9でデスクトップ検索エンジンを開発しています

更新されたファイルの新しいエントリを削除して作成したいと思います。

インデックスには、完全なファイルパスと最終更新日が保存されます。

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. 関数deleteDocument()のドキュメント番号(docNum)を取得するにはどうすればよいですか?

4

1 に答える 1

1

2 番目の質問に答えるには、次の IndexReader メソッドを使用します。

public int deleteDocuments(Term term)

したがって、伝票番号は必要ありません。

于 2009-01-27T21:44:19.177 に答える