Luceneのドキュメントでは、アプリケーション全体でIndexWriterとIndexSearcherの1つのインスタンスを使用することが最も高速であると述べています。私はすべての回でIndexWriter
オープンの静的インスタンスを持っている、と常に開いておくが、IndexWriter
は、インデックス上の任意のCRUD操作を実行する場合ときに再構築されIndexSearcher
の静的インスタンス瞬間Lucene IndexWriter&IndexSearcherをアプリの生涯にわたって開いたままにすることをお勧めします
。アプリケーションが終了するとIndexWriter
とIndexSearcher
の両方を閉じるインデックス管理クラスにDisposeメソッドを実装しました(しかし、これはWebアプリケーションなので、呼び出されることなく実行される可能性があります)。
これは、物事をやり遂げるための合理的な方法のように聞こえますか?また、静的インスタンスを使用すると、マルチスレッドの問題が発生します。私。使用中に私の作家とサーチャーをロックする必要がありますか?
情報をお寄せいただきありがとうございます。スレッドセーフであることは素晴らしいことです。あなたが言及したクラスを調べます。 – jcvandan
javaとc#の実装に違いはありますか、それとも同じですか? – xforfun