2

solrj をクライアントとして使用して、ドキュメントを solr クラウドにインデックス付けしています (solr4.5 を使用)

tenant_id に基づいてドキュメントを保存する必要があったため、ドキュメント ルーティングを実行しようとしています。コレクションがnumShardsパラメーターを使用して作成されている場合にのみ可能です( http://searchhub.org/2013/06/13/solr-cloud-document-routing/ )

solr クラウド (example1/solr と example2/solr) に solr の 2 つのインスタンスと、2181 ポートで実行されている exrenal Zookeeper があります。

両方のインスタンスは、collection1 というコレクションで構成されています

newCollectionというコレクションをもう 1 つ作成しました(2 つのシャードと 2 つのレプリカを使用)。 http://localhost:8501/solr/admin/collectionsaction=CREATE&name=newCollection&numShards=2&replicationFactor=2&maxShardsPerNode=2&router.field=id

example1/solr-> には、newCollection_shard1_replica1 と newCollection_shard2_replica1 があります。

example2/solr -> newCollection_shard1_replica2 と newCollection_shard2_replica2 があります

example1/solr/collection1/conf をすべてのシャードとレプリカにコピーしました

Zookeeper サーバーと solr インスタンスを再起動しました。

Zookeeper->zkServer.cmd

example1/solr-> java -Dbootstrap_confdir=./solr/newCollection_shard1_replica1/conf -Dcollection.configName=myconf -DzkHost=localhost:2181 -jar start.jar

example2/solr->java -DzkHost=localhost:2181 -jar start.jar

(両方のインスタンスが異なるポートで実行されています。1 つは 8081 で、もう 1 つは 8051 です)


solrj クライアントを使用してドキュメントのインデックスを作成しています

ここに私のサンプルコードがあります

String url="http://localhost:8081/solr"
ConcurrentUpdateSolrServer solrServer= new ConcurrentUpdateSolrServer(url, 10000, 4);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "shard1!513");
doc.addField("name", "Santhosh");
solrServer.add(documents);
solrServer.commit();

しかし、ID shard1!513 でcollection1にドキュメントを保存しています。solrconfig.xml で必要な構成変更はありますか (solr4.5 に付属するデフォルトの solrconfig.xml を使用しています)。

ドキュメントをnewCollectionに保存するにはどうすればよいですか? ドキュメント ルーティングの方法

問題を解決してください。

ありがとう!

4

3 に答える 3

0

CloudSolrServer http://lucene.apache.org/solr/4_2_1/solr-solrj/org/apache/solr/client/solrj/impl/CloudSolrServer.htmlを使用する必要があります。

solrcloud では、更新は Zookeeper 経由でルーティングする必要があるため、Zookeeper はクラウド内のリーダーのステータスを認識しています。もう 1 つ、URL にコレクション名を追加する必要はありません。更新を「collectionName」コレクションに送信する CloudSolrServer のメソッド

于 2013-10-28T06:31:49.553 に答える