11

Solrは初めてです。構造化データをデータベースに格納し、Solr/Luceneを使用して検索できるサーバーを作成しようとしています。サーバーは、高可用性を実現するために、任意の数の同一ノードにクラスター化できます。

標準構成のSolrは、ファイルシステム上のファイルにインデックスを格納しているようです。これにより、整合性とクラスタリングにいくつかの問題が発生するようです。

インデックスをDBとトランザクション的に整合させるにはどうすればよいですか?これを行う方法はありますか?(たとえば、Solrインデックスへのコミットと調整されたDBへのコミットを行う方法はありますか?)

インデックスを(リレーショナル)DBに保存する方法はありますか?これは一貫性の問題とクラスターの問題を解決しますが、これを行う方法についての文献はあまりありません。

クラスターとして構成されている場合、各クラスターノードは独自のインデックスのコピーを維持する必要がありますか。Solrの複数のインスタンスが単一のインデックスを更新できるかどうかは明らかではありません。

または-インデックスの一貫性が保証されていないことを受け入れるのをあきらめ、毎日かそこらで再構築しますか?人々は通常これについて何をしますか?

4

2 に答える 2

18

Q>インデックスをDBとトランザクション的に整合させるにはどうすればよいですか?
A>できません。おそらく上に別のトランザクションレイヤーを発明することもできますが、開発には時間がかかり、とにかく100%の一貫性に達することはありません。たとえば、DBとSolrの両方にデータを送信し、両方のデータが到着した後にのみコミットすることができますが、これはアトミックではありません。

Q>インデックスを(リレーショナル)DBに保存する方法はありますか?
A> Lucene 4.0では、おそらく(独自のコーデックを作成することで)可能です。しかし、これでは問題は解決しません。

Q>クラスターとして構成されている場合、各クラスターノードは独自のインデックスのコピーを維持する必要がありますか?
A>はい。

Q> Solrの複数のインスタンスが単一のインデックスを更新できるかどうかは明確ではありません。
A>複数のLucene/Solrインスタンスは同じインデックスファイルに書き込むことができません。あなたができる最大のことは、複数IndexSearcherのを作成することです。しかし、これはおそらくSolrレベルで行われるでしょう。

Q>インデックスの一貫性が保証されていないことを受け入れることを諦めますか?
A>はい。あなたはdb中心すぎると思います。Googleについて考えるとき、Solr / Luceneについて考えてください。彼らは、インデックス全体をアトミックに世界中に展開しているわけではないに違いありません。どのサーバーにアクセスしたかによって(もちろん数秒間)検索結果にわずかな不一致が生じる場合、それは大したことではありません。

Q >毎日かそこらで再構築しますか?人々は通常これについて何をしますか?
A> Luceneにはほぼリアルタイムの検索がありますが、基本レベルでは、インデックスの更新を送信し、データベースの変更が発生したときにコミットしてから、インデックスリーダーを再度開いてこれらの更新を確認します。これはすべてSolrで自動的に行われます。

于 2012-10-19T09:51:29.313 に答える
1

これは少し古いことを知っていますが、誰かを助けるかもしれません。Apachezookeeperでsolrcloudを試すことができます。

Apache Solrには、フォールトトレランスと高可用性を組み合わせたSolrサーバーのクラスターをセットアップする機能が含まれています。SolrCloudと呼ばれるこれらの機能は、分散インデックスおよび検索機能を提供し、ほとんど構成なしで次の機能をサポートします。

Central configuration for the entire cluster
Automatic load balancing and fail-over for queries
ZooKeeper integration for cluster coordination and configuration.

Zookeeperは、solrのクラスターマネージャーです。それはsolrで本当にうまく機能します。

https://cwiki.apache.org/confluence/display/solr/SolrCloud

http://zookeeper.apache.org/doc/trunk/zookeeperOver.html
于 2014-11-24T12:04:56.053 に答える