Создать CloudSolrClient, используя конечную точку Solr - PullRequest
0 голосов
/ 23 мая 2019

Можно ли создать облачный клиент без использования zookeeper? я не хочу добавлять зависимости от zookeeper и напрямую общаться с solrcloud.

это мой текущий код .. здесь конечная точка - это код zookeeper. Я попытался дать URL-адрес Solr, но он выдает исключение, сказав «Не удалось инициализировать HttpClusterStateProvider (сервер (ы) Solr отключен / выключен»

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

ОБНОВЛЕНИЕ:

использовал HttpSolrClient для создания клиента и был успешным. Но он не может выполнять с ним никаких операций, таких как перечисление всех коллекций или создание коллекции. я использую

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

это неправильно?

1 Ответ

1 голос
/ 23 мая 2019

Если вы не хотите использовать Zookeeper, не создавайте CloudSolrClient, а вместо этого используйте обычный HttpSolrClient или LBHttpSolrClient.

Узел Solr, к которому вы подключаетесь, направит запрос внутренне на хост, на котором находятся запрашиваемые вами данные (т. Е. Он выполнит ту работу, которую ваш CloudSolrClient сделает за вас).

Преимущество использования CloudSolrClient состоит в том, что он будет подключаться напрямую к узлу, на котором размещена ваша коллекция, вместо того, чтобы проходить через потенциально нехостинговый клиент и, таким образом, быстрее получать ответ без дополнительного запроса в вашем кластере Solr. .

...