Solrj 无法从 Solr Cloud Example 连接到 zookeeper
Solrj cannot connect to zookeeper from Solr Cloud Example
我通过 运行 包含的示例 bin/solr -e cloud
启动了一个 Solrcloud,在这种情况下,我设法启动了一个三节点 Solr 云并创建了一个 gettingstarted
集合:
http://localhost:8983/solr/admin/collections?action=CREATE&name=gettingstarted&numShards=3&replicationFactor=2&maxShardsPerNode=2&collection.configName=gettingstarted
我认为它在端口 9983 上带有一个嵌入式 zookeeper 运行 因为我在启动云时看到了这个输出:
...
Starting up Solr on port 7574 using command:
bin/solr start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983
Waiting up to 30 seconds to see Solr running on port 7574 [/]
...
但是,当我尝试使用 SolrJ 连接到 SolrCloud 时,失败并显示错误消息:
Exception in thread "main" org.apache.solr.common.SolrException: Cannot connect to cluster at localhost:9983/solr: cluster not found/not ready
谁能帮我理解这是怎么回事?
代码失败,因为您试图将 CloudSolrServer
指向不存在的 znode。
你的 zkhost 没有配置 /solr
chroot。配置似乎存储在根节点。
所以换行
String zkHostString = "localhost:9983/solr";
到
String zkHostString = "localhost:9983";
你的代码应该可以工作。
这取决于你的 zkHost。如果你的 zkHost 包含 /solr ,那么它应该是 localhost:2181/solr 或 localhost:9983/solr;否则,localhost:yourport
我通过 运行 包含的示例 bin/solr -e cloud
启动了一个 Solrcloud,在这种情况下,我设法启动了一个三节点 Solr 云并创建了一个 gettingstarted
集合:
http://localhost:8983/solr/admin/collections?action=CREATE&name=gettingstarted&numShards=3&replicationFactor=2&maxShardsPerNode=2&collection.configName=gettingstarted
我认为它在端口 9983 上带有一个嵌入式 zookeeper 运行 因为我在启动云时看到了这个输出:
...
Starting up Solr on port 7574 using command:
bin/solr start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983
Waiting up to 30 seconds to see Solr running on port 7574 [/]
...
但是,当我尝试使用 SolrJ 连接到 SolrCloud 时,失败并显示错误消息:
Exception in thread "main" org.apache.solr.common.SolrException: Cannot connect to cluster at localhost:9983/solr: cluster not found/not ready
谁能帮我理解这是怎么回事?
代码失败,因为您试图将 CloudSolrServer
指向不存在的 znode。
你的 zkhost 没有配置 /solr
chroot。配置似乎存储在根节点。
所以换行
String zkHostString = "localhost:9983/solr";
到
String zkHostString = "localhost:9983";
你的代码应该可以工作。
这取决于你的 zkHost。如果你的 zkHost 包含 /solr ,那么它应该是 localhost:2181/solr 或 localhost:9983/solr;否则,localhost:yourport