使用 solr 端点创建 CloudSolrClient

Create CloudSolrClient using solr endpoint

我可以不使用 zookeeper 创建一个 cloudsolrclient 吗? 我不想添加对 zookeeper 的依赖并直接与 solrcloud 对话。

这是我当前的代码..这里的端点是 zookeeper 的端点。我试着给 solr url 但它抛出异常说 "Couldn't initialize a HttpClusterStateProvider (is/are the Solr server(s) is/are down"

CloudSolrClient.Builder builder = new Builder(Arrays.asList(endpoint)); return builder.build();

更新:

使用 HttpSolrClient 创建客户端并成功。但无法对其执行任何操作,例如列出所有集合或创建集合。我正在使用

List<String> collections = CollectionAdminRequest.listCollections(client);

这是错误的吗?

如果您不想使用 Zookeeper,请不要创建 CloudSolrClient,而是使用常规的 HttpSolrClientLBHttpSolrClient

您要连接的 Solr 节点会将请求在内部路由到具有您请求的数据的主机(即,它将完成您的 CloudSolrClient 将为您完成的工作)。

使用 CloudSolrClient 的好处是它将直接连接到托管您的集合的节点,而不必通过潜在的 non-hosting 客户端,从而更快地获得答案而无需Solr 集群内的额外请求。