Lucene を検索エンジン ライブラリとして使用する、非常にスケーラブルなアプリケーションを構築したいと考えています。ドキュメントと FAQ を参照しているときに、index ディレクトリに write.lock を作成することで、1 つのストレージ ロケーションで 1 つのインデックス ライターしか開くことができないことに気付きました。そのインデックスで複数の IndexReader を開くことができます。
さまざまなマシン/サーバーで実行されている多数のインデクサーと、これらのインデクサーによって作成されたインデックスでさまざまな種類のクエリに応答する複数のサーチャーがあるアーキテクチャを構築することに興味があります。サーチャーとインデクサーの両方が異なるコンピューターで実行されます。
このようなシナリオでは、複数のインデクサーが同じインデックス ストレージの場所を使用してドキュメントのインデックスを作成することをお勧めします。これを達成する方法は?NFS (Networked File System) などを使用する必要がありますか? この問題は、Solr または Lucene 上の他のフレームワークによって処理されましたか? 私の頭に浮かぶ明白な解決策の 1 つは、インデクサーごとに 1 つのインデックスを作成し、サーチャーに複数のインデックス ディレクトリにまたがるクエリを作成するように依頼することです。しかし、これらは、インデクサーサーバーと同じ数の多数の異なるインデックスディレクトリが作成されることにつながりますが、これはあまり望ましくないと思います。I want (# of index dirs) << (# of indexer) < (# of searcher)
この場合、私が持っているさまざまな選択肢は何ですか?