3

Lucene 検索インデックスを毎晩生成する .net Windows サービスがあります。最初にデータベースからすべてのレコードを取得し、IndexWriter の AddDocument メソッドを使用して Lucene インデックスに追加し、メソッドから戻る前に Optimize メソッドを呼び出します。フェッチされたレコードは非常に大きいため、インデックス作成が完了するまでに約 2 ~ 3 分かかります。ご存じのとおり、Lucene はインデックスの生成中に中間セグメント ファイルを生成し、Optimize が呼び出されるとインデックス全体を 3 つのファイルに圧縮します。

とにかく、このインデックス生成プロセスが Lucene によって終了し、インデックスが検索に使用できることを知ることができますか? 処理が完了したときに別のメソッドを呼び出したいので、これを知る必要があります。

4

2 に答える 2

4

write.lock ファイルの存在を確認できます。

http://wiki.apache.org/lucene-java/LuceneFAQ#head-733eab8f4000ba0f6c9f4ea052dea77d3d541857

于 2009-06-23T18:52:30.823 に答える
0

Lucene がいつインデックス作成を終了するかを知る必要がある理由がわかりません。Lucene のインデックス作成中に検索を実行できます。実際、最適化しながら検索できると思います。

個人的には、ロック ファイルを検索するという考えは好きではありません。ブール値を設定して、writer.optimize() を呼び出した後に切り替えることはできませんか?

于 2009-06-27T00:42:38.443 に答える