1

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)

この場合、私が持っているさまざまな選択肢は何ですか?

4

2 に答える 2

2

ElasticSearchSolrCloudを見てください。

ElasticSearchとSolrの比較

于 2012-08-29T14:36:23.133 に答える
2

まず第一に、Lucene で NFS を使用しないでください。単純に遅くて危険です。

スケーラビリティと高可用性に関しては、データに集中できるように、elasticsearch にすべての面倒な作業を任せることをお勧めします。もちろん、複数のスレッドでデータのインデックスを作成することもできます。

Elasticsearch の分散型の性質について詳しく知りたい場合は、このビデオをご覧になることをお勧めします。

于 2012-08-29T17:58:43.030 に答える