私はWindowsクラスタで動作するアプリケーションのLucene.NETの実行に興味があります。検索の問題自体はかなり小さいですが、ステートレス/クラスタの問題は引き続き処理する必要があります。Lucene.NETクラスタリングのオプション?
私はSOLRは私のシナリオ(およびそれ以上)が、サーブレットコンテナ(とJava)を必要とするが、私のためにいくつかの問題を提起扱うことを理解しています。しかし、Lucene.NETベースのアプローチの複雑さにもよりますが、それでもバイアルのオプションになる可能性があります。
私の質問は今、複数のホスト上で実行されているの問題を処理するための私が持っているものなオプションです:
は、すべてのノードのための共通、共有ストレージ上に永続? Lucene.NETは並行処理を透過的に扱いますか?サーバーはキャッシュにRAMを使用しますか?もしそうなら、Lucene.NETは更新されたファイルに基づいて透過的にこの無効化を処理しますか?
レプリケーション?各サーバーには、必要なすべてのコピーがあります。いずれのアップデートでも、すべてのサーバが新しいレプリカを取得します(または、これが比較的簡単な場合はdiff)。これのための既存のツール、または私はそれを扱うことができますか?
ワークロードの分割/シャーディング?各サーバーは、読み取りと更新の両方について、独自のデータのみを処理します。これを処理するツール、部分的な結果を結合するツールなど
その他のオプション初期の調査で私が見逃していた可能性がありますか?
ローカルバージョンを試してみると、私のLuceneディレクトリは数百メガバイトのオーダーになりました。長期的に私はおそらく1〜5 GBを見ることができます。アップデートの頻度が難しい場合、私はこれをかなり柔軟に制御できます。並行読み取り/検索負荷は非常に緩やかであると予想されます。
直接回答ではありませんが、elasticsearch(http://www.elasticsearch.org/)をご覧ください。ほとんどのニーズを非常に簡単に処理します。 – Mikos
クラスタメンバー間でデータを同期させるための要件はありますか?私たちはLucene.NETのかなり大規模なクラスター展開の途中にあり、自分の状況をよりよく理解していれば、ある程度のガイダンスを提供できるかもしれません。 –