2016-12-20 3 views
0

3つのインスタンスにわたってデータをシャーディングし、それらの3つのインスタンスからクエリを実行する3つのSolrクラウドインスタンスを作成しました。私は、以下のコマンドを使用して作成したすべてのサーバーでSolrデータのインデックスが作成される[シャーディングモード]

CMD:

solr.cmd create_collection -c tests -shards 3 replicationFactor 1 
:私は3つの破片を使用し、1

CMD1の複製因子を持つコレクションを作成した後

solr.cmd start -c -s Node1 -p 8983 
solr.cmd start -c -s Node2 -z localhost:9983 -p 8984 
solr.cmd start -c -s Node3 -z localhost:9983 -p 8985 

次に、次のcomを使用してpost jarを使用してコレクションにデータをインデックス付けしますマンド

CMD2:

java -jar post.jar *.xml 

データは3つのSolrのクラウドインスタンス上のすべての上に分割して索引付けされます私の理解あたりとして、その場所

で32件のXMLファイルがありました。

しかし、どのようなことが起きたかは、3つのインスタンスすべてで32ドキュメントが索引付けされたことです。

私はすべてが同じレコード数を返し、次のURLに

http://localhost:8984/solr/tests/select?indent=on&q=*:*&wt=json 
http://localhost:8985/solr/tests/select?indent=on&q=*:*&wt=json 
http://localhost:8983/solr/tests/select?indent=on&q=*:*&wt=json 

を使用してこれを確認しました。

私の理解は、ドキュメントが分割され、3つのすべてのインスタンスで索引付けされることです。

私は30億の文書をSolrに索引付けしたいので、2 billion hard limit in Solrがあります。私はそれらが3つのSolrインスタンスで分割され、索引付けされていることを確認したかったのです。

私に間違いがあった場合はお知らせください。

バージョン。あなたが/solr/testsを照会しているとき

Solr =6.1.0 
Windows= 7 

答えて

1

、あなたはtestsコレクションを照会しています。 Solrは、そのコレクション内のすべての文書を取得し、コレクションに追加されたすべての断片からあなたのために戻します。

あなたはSolrのコレクションの背後にある考え方を見つけました。照会しているサーバーに関係なく、Solrはコレクションの結果を返します。そのコレクションに追加されたすべてのドキュメントが含まれます。作成している3つの要求の唯一の違いは、結果をクライアントに戻し、他のコアから結果を取得する要求を行うことに責任を負うサーバーです。

コアの内容を調べる場合は、これらのコアの名前はcollectionname_shardX_replicaYです。 Zookeeperインスタンスからjsonファイルをダウンロードすると、現在のクラスタの状態を調べることができます。これは正確にどのシャードがどこにあるかを示します。

単一ノード上でCoreAdmin APIを使用して、そのサーバーに配置されているコアを調べることもできます。クラウドモードで実行しているときにCoreAdmin APIを使用して変更可能なアクションを実行したくないことに注意してください。

+0

はい、あなたは正しいです。どうもありがとう。 – The6thSense

関連する問題