Class CloudLegacySolrClient.Builder
- java.lang.Object
-
- org.apache.solr.client.solrj.impl.SolrClientBuilder<CloudLegacySolrClient.Builder>
-
- org.apache.solr.client.solrj.impl.CloudLegacySolrClient.Builder
-
- Enclosing class:
- CloudLegacySolrClient
public static class CloudLegacySolrClient.Builder extends SolrClientBuilder<CloudLegacySolrClient.Builder>
ConstructsCloudLegacySolrClient
instances from provided configuration.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
directUpdatesToLeadersOnly
protected LBHttpSolrClient.Builder
lbClientBuilder
protected LBHttpSolrClient
loadBalancedSolrClient
protected boolean
parallelUpdates
protected boolean
shardLeadersOnly
protected List<String>
solrUrls
protected ClusterStateProvider
stateProvider
protected String
zkChroot
protected Collection<String>
zkHosts
-
Fields inherited from class org.apache.solr.client.solrj.impl.SolrClientBuilder
connectionTimeoutMillis, httpClient, responseParser, socketTimeoutMillis
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Builder()
Constructor for use by subclasses.Builder(List<String> solrUrls)
Provide a series of Solr URLs to be used when configuringCloudLegacySolrClient
instances.Builder(List<String> zkHosts, Optional<String> zkChroot)
Provide a series of ZK hosts which will be used when configuringCloudLegacySolrClient
instances.Builder(ClusterStateProvider stateProvider)
Provide an already createdClusterStateProvider
instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CloudLegacySolrClient
build()
Create aCloudLegacySolrClient
based on the provided configuration.CloudLegacySolrClient.Builder
getThis()
The solution for the unchecked cast warning.CloudLegacySolrClient.Builder
sendDirectUpdatesToAnyShardReplica()
TellsCloudLegacySolrClient.Builder
that created clients can send updates to any shard replica (shard leaders and non-leaders).CloudLegacySolrClient.Builder
sendDirectUpdatesToShardLeadersOnly()
TellsCloudLegacySolrClient.Builder
that created clients should send direct updates to shard leaders only.CloudLegacySolrClient.Builder
sendUpdatesOnlyToShardLeaders()
TellsCloudLegacySolrClient.Builder
that created clients should send updates only to shard leaders.CloudLegacySolrClient.Builder
sendUpdatesToAllReplicasInShard()
TellsCloudLegacySolrClient.Builder
that created clients should send updates to all replicas for a shard.CloudLegacySolrClient.Builder
withLBHttpSolrClient(LBHttpSolrClient loadBalancedSolrClient)
Provides aLBHttpSolrClient
for the builder to use when creating clients.CloudLegacySolrClient.Builder
withLBHttpSolrClientBuilder(LBHttpSolrClient.Builder lbHttpSolrClientBuilder)
Provides aHttpClient
for the builder to use when creating clients.CloudLegacySolrClient.Builder
withParallelUpdates(boolean parallelUpdates)
TellsCloudLegacySolrClient.Builder
whether created clients should send shard updates serially or in parallel-
Methods inherited from class org.apache.solr.client.solrj.impl.SolrClientBuilder
withConnectionTimeout, withHttpClient, withResponseParser, withSocketTimeout
-
-
-
-
Field Detail
-
zkHosts
protected Collection<String> zkHosts
-
zkChroot
protected String zkChroot
-
loadBalancedSolrClient
protected LBHttpSolrClient loadBalancedSolrClient
-
lbClientBuilder
protected LBHttpSolrClient.Builder lbClientBuilder
-
shardLeadersOnly
protected boolean shardLeadersOnly
-
directUpdatesToLeadersOnly
protected boolean directUpdatesToLeadersOnly
-
parallelUpdates
protected boolean parallelUpdates
-
stateProvider
protected ClusterStateProvider stateProvider
-
-
Constructor Detail
-
Builder
protected Builder()
Constructor for use by subclasses. This constructor was public prior to version 9.0
-
Builder
public Builder(List<String> solrUrls)
Provide a series of Solr URLs to be used when configuringCloudLegacySolrClient
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 CloudSolrClient.Builder(solrBaseUrls).build();
-
Builder
public Builder(ClusterStateProvider stateProvider)
Provide an already createdClusterStateProvider
instance
-
Builder
public Builder(List<String> zkHosts, Optional<String> zkChroot)
Provide a series of ZK hosts which will be used when configuringCloudLegacySolrClient
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 CloudSolrClient.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 CloudSolrClient.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
-
withLBHttpSolrClientBuilder
public CloudLegacySolrClient.Builder withLBHttpSolrClientBuilder(LBHttpSolrClient.Builder lbHttpSolrClientBuilder)
Provides aHttpClient
for the builder to use when creating clients.
-
withLBHttpSolrClient
public CloudLegacySolrClient.Builder withLBHttpSolrClient(LBHttpSolrClient loadBalancedSolrClient)
Provides aLBHttpSolrClient
for the builder to use when creating clients.
-
sendUpdatesOnlyToShardLeaders
public CloudLegacySolrClient.Builder sendUpdatesOnlyToShardLeaders()
TellsCloudLegacySolrClient.Builder
that created clients should send updates only to shard leaders.WARNING: This method currently has no effect. See SOLR-6312 for more information.
-
sendUpdatesToAllReplicasInShard
public CloudLegacySolrClient.Builder sendUpdatesToAllReplicasInShard()
TellsCloudLegacySolrClient.Builder
that created clients should send updates to all replicas for a shard.WARNING: This method currently has no effect. See SOLR-6312 for more information.
-
sendDirectUpdatesToShardLeadersOnly
public CloudLegacySolrClient.Builder sendDirectUpdatesToShardLeadersOnly()
TellsCloudLegacySolrClient.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 a
SolrException
-
sendDirectUpdatesToAnyShardReplica
public CloudLegacySolrClient.Builder sendDirectUpdatesToAnyShardReplica()
TellsCloudLegacySolrClient.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 CloudLegacySolrClient.Builder withParallelUpdates(boolean parallelUpdates)
TellsCloudLegacySolrClient.Builder
whether created clients should send shard updates serially or in parallelWhen an
UpdateRequest
affects multiple shards,CloudLegacySolrClient
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.
-
build
public CloudLegacySolrClient build()
Create aCloudLegacySolrClient
based on the provided configuration.
-
getThis
public CloudLegacySolrClient.Builder getThis()
Description copied from class:SolrClientBuilder
The solution for the unchecked cast warning.- Specified by:
getThis
in classSolrClientBuilder<CloudLegacySolrClient.Builder>
-
-