我们有一组独立的Solr内核(Solr 4.3),我们已经构建了一些自定义插件 . 我现在正在尝试将集群转换为Solr Cloud集群 . 这就是我尝试部署核心的方法(在4.7.2中) .
- 使用zookeeper嵌入启动solr .
java -DzkRun -Djetty.port = 8985 -jar start.jar
- 将配置上传到Zookeeper(与独立核心相同的配置)
zkcli.bat -zkhost localhost:9985 -cmd upconfig -confdir myconfig -confname myconfig
- 使用Collections API创建一个包含2个分片的新集合(mycollection)http://localhost:8985/solr/admin/collections?action=CREATE&name=mycollection&numShards=2&replicationFactor=1&maxShardsPerNode=2&collection.configName=myconfig
所以在这一点上,我在solr目录下有两个分片,带有相应的core.properties
但是当我转到http://localhost:8985/solr/#/~cloud时,我看到两个分片的状态是"Down",默认情况下它们应该是活动的 .
当我尝试使用SolrJ(通过CloudSolrServer API)索引其中的文档时,我收到错误“没有可用于处理此请求的实时SolrServers” . 我重新启动了Solr,但同样的问题 .
private CloudSolrServer cloudSolr;
cloudSolr = new CloudSolrServer(zkHOST);
cloudSolr.setZkClientTimeout(zkClientTimeout);
cloudSolr.setDefaultCollection(collectionName);
cloudSolr.connect();
cloudSolr.add(doc)
我究竟做错了什么?我做了很多挖掘,看到一个旧的Jira bug说Solr Cloud分片在索引中有一些文档之前不会处于活动状态 . 如果这就是原因,那有点像捕获22不是吗?
所以无论如何,我还尝试手动添加一些测试文档并致力于查看是否有所改进 . 现在在分片统计页面上,它正确地给了我Numdocs计数,但当我尝试查询时说“没有服务器托管分片” . 我接下来尝试传入shards.tolerant = true作为查询参数和搜索,但没有雪茄 . 它说有0个文件 .
任何帮助,将不胜感激 . 我的主要目标是使用SolrCloud重建旧的独立核心并测试我们的自定义请求处理程序是否仍然按预期工作 . 此时,我无法索引我创建的4.7 Solr Cloud集合中的文档 .
感谢致敬