如何在没有 运行 Solr 的情况下创建集合?

How do I create a collection without a running Solr?

我正在尝试自动 bootstrap 一个 SolrCloud 集群。我已经弄清楚如何使用

将我的配置文件和 solr.xml 文件上传到 zookeeper
./server/scripts/cloud-scripts/zkcli.sh -zkhost ${ZK_HOST} -cmd bootstrap -solrhome ${SOLR_HOME}
./bin/solr zk cp -z ${ZK_HOST} ${SOLR_HOME}/solr.xml zk:/solr.xml

但我不明白的是如何在任何 Solr 服务器完成启动之前创建我的集合。

我已经尝试使用 zkcli.sh 将我的配置 link 到一个集合,但这需要集合已经存在。

我也尝试过使用 bin/solr create 创建集合并将其 link 添加到我的配置中,但这要求 Solr 已经 运行.

在拥有整个集群之前是否无法创建 SolrCloud 集合 运行?

不,这是不可能的。你需要 Solr 运行,你点击这个 Collections api endpoint 来创建集合。这个端点由 Solr

提供服务

这个问题最近在 solr-user mailing list 上讨论过,结论是一样的,你需要有 Solr 运行 才能创建一个集合。

解决此限制的一个建议是编写一个脚本,等待适当数量的节点可用,然后调用集合 API 端点来创建集合。电子邮件线程中提到的示例 python script 能够执行此操作。