使用solr端点创建CloudSolrClient

时间:2019-05-23 13:27:57

标签: solr solrj solrcloud

是否可以在不使用Zookeeper的情况下创建cloudolrclient? 我不想添加对zookeeper的依赖,并直接与solrcloud交谈。

这是我当前的代码..这里的端点是zookeeper的代码。我试图给solr的URL,但它抛出异常说 “无法初始化HttpClusterStateProvider(Solr服务器已关闭)”

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

更新:

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

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

这是错吗?

1 个答案:

答案 0 :(得分:0)

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

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

使用CloudSolrClient的好处在于,它将直接连接到托管您的集合的节点,而不必经过可能是非托管的客户端,从而可以更快地获得答案,而无需在您的内部提出额外的要求Solr集群。