Luceneのドキュメントのほとんどは、新しいReaderを開くためのオーバーヘッドのために、indexReaderの単一インスタンスを保持して再利用することを推奨しています。[Lucene] IndexReader/Searcherのオーバーヘッドとは
しかし、私は、このオーバーヘッドが何であり、何がそれに影響を与えているのかを知ることは難しいと感じています。
これは、実際に開いているIndexReaderのオーバーヘッドがどのくらいかかりますか?
この質問のコンテキストは次のとおりです。 現在、ServletContainerからフルテキストを実行するクラスタ化されたTomcatスタックを実行しています。 これらの検索は、クライアントごとに個別のLuceneインデックスで行われます。これは、各クライアントが自分のデータのみを検索するためです。これらの索引の各々は、数千から(現在)約100,000の文書までの範囲を含む。
クラスタ化されたtomcatノードのため、どのクライアントも任意のtomcatノードに接続できます。 したがって、IndexReaderを開いたままにすると、実際には各Tomcatノードに数千のindexReaderを開いたままにしておくことになります。これは悪い考えのように思えますが、常に再開は非常に良いアイデアのようには見えません。
Luceneを配備する方法を多少変更する可能性はありますが、必要がない場合はむしろそうしたいと思います。