Class CloudHttp2SolrClient.Builder
- java.lang.Object
-
- org.apache.solr.client.solrj.impl.CloudHttp2SolrClient.Builder
-
- Enclosing class:
- CloudHttp2SolrClient
public static class CloudHttp2SolrClient.Builder extends Object
ConstructsCloudHttp2SolrClient
instances from provided configuration.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
directUpdatesToLeadersOnly
protected Http2SolrClient
httpClient
protected boolean
parallelUpdates
protected boolean
shardLeadersOnly
protected List<String>
solrUrls
protected ClusterStateProvider
stateProvider
protected String
zkChroot
protected Collection<String>
zkHosts
-
Constructor Summary
Constructors Constructor Description Builder(List<String> solrUrls)
Provide a series of Solr URLs to be used when configuringCloudHttp2SolrClient
instances.Builder(List<String> zkHosts, Optional<String> zkChroot)
Provide a series of ZK hosts which will be used when configuringCloudHttp2SolrClient
instances.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CloudHttp2SolrClient
build()
Create aCloudHttp2SolrClient
based on the provided configuration.CloudHttp2SolrClient.Builder
sendDirectUpdatesToAnyShardReplica()
TellsCloudHttp2SolrClient.Builder
that created clients can send updates to any shard replica (shard leaders and non-leaders).CloudHttp2SolrClient.Builder
sendDirectUpdatesToShardLeadersOnly()
TellsCloudHttp2SolrClient.Builder
that created clients should send direct updates to shard leaders only.CloudHttp2SolrClient.Builder
withHttpClient(Http2SolrClient httpClient)
CloudHttp2SolrClient.Builder
withParallelUpdates(boolean parallelUpdates)
TellsCloudHttp2SolrClient.Builder
whether created clients should send shard updates serially or in parallel When anUpdateRequest
affects multiple shards,CloudHttp2SolrClient
splits it up and sends a request to each affected shard.
-
-
-
Field Detail
-
zkHosts
protected Collection<String> zkHosts
-
zkChroot
protected String zkChroot
-
httpClient
protected Http2SolrClient httpClient
-
shardLeadersOnly
protected boolean shardLeadersOnly
-
directUpdatesToLeadersOnly
protected boolean directUpdatesToLeadersOnly
-
parallelUpdates
protected boolean parallelUpdates
-
stateProvider
protected ClusterStateProvider stateProvider
-
-
Constructor Detail
-
Builder
public Builder(List<String> solrUrls)
Provide a series of Solr URLs to be used when configuringCloudHttp2SolrClient
instances. The solr client will use these urls to understand the cluster topology, which solr nodes are active etc. Provided Solr URLs are expected to point to the root Solr path ("http://hostname:8983/solr"); they should not include any collections, cores, or other path components. Usage example:final List<String> solrBaseUrls = new ArrayList<String>(); solrBaseUrls.add("http://solr1:8983/solr"); solrBaseUrls.add("http://solr2:8983/solr"); solrBaseUrls.add("http://solr3:8983/solr"); final SolrClient client = new CloudHttp2SolrClient.Builder(solrBaseUrls).build();
-
Builder
public Builder(List<String> zkHosts, Optional<String> zkChroot)
Provide a series of ZK hosts which will be used when configuringCloudHttp2SolrClient
instances. Usage example when Solr stores data at the ZooKeeper root ('/'):final List<String> zkServers = new ArrayList<String>(); zkServers.add("zookeeper1:2181"); zkServers.add("zookeeper2:2181"); zkServers.add("zookeeper3:2181"); final SolrClient client = new CloudHttp2SolrClient.Builder(zkServers, Optional.empty()).build();
Usage example when Solr data is stored in a ZooKeeper chroot:final List<String> zkServers = new ArrayList<String>(); zkServers.add("zookeeper1:2181"); zkServers.add("zookeeper2:2181"); zkServers.add("zookeeper3:2181"); final SolrClient client = new CloudHttp2SolrClient.Builder(zkServers, Optional.of("/solr")).build();
- Parameters:
zkHosts
- a List of at least one ZooKeeper host and port (e.g. "zookeeper1:2181")zkChroot
- the path to the root ZooKeeper node containing Solr data. Providejava.util.Optional.empty()
if no ZK chroot is used.
-
-
Method Detail
-
sendDirectUpdatesToShardLeadersOnly
public CloudHttp2SolrClient.Builder sendDirectUpdatesToShardLeadersOnly()
TellsCloudHttp2SolrClient.Builder
that created clients should send direct updates to shard leaders only. UpdateRequests whose leaders cannot be found will "fail fast" on the client side with aSolrException
-
sendDirectUpdatesToAnyShardReplica
public CloudHttp2SolrClient.Builder sendDirectUpdatesToAnyShardReplica()
TellsCloudHttp2SolrClient.Builder
that created clients can send updates to any shard replica (shard leaders and non-leaders). Shard leaders are still preferred, but the created clients will fallback to using other replicas if a leader cannot be found.
-
withParallelUpdates
public CloudHttp2SolrClient.Builder withParallelUpdates(boolean parallelUpdates)
TellsCloudHttp2SolrClient.Builder
whether created clients should send shard updates serially or in parallel When anUpdateRequest
affects multiple shards,CloudHttp2SolrClient
splits it up and sends a request to each affected shard. This setting chooses whether those sub-requests are sent serially or in parallel.If not set, this defaults to 'true' and sends sub-requests in parallel.
-
withHttpClient
public CloudHttp2SolrClient.Builder withHttpClient(Http2SolrClient httpClient)
-
build
public CloudHttp2SolrClient build()
Create aCloudHttp2SolrClient
based on the provided configuration.
-
-