Class ModifiedCloudHttp2SolrClient.Builder
- java.lang.Object
-
- org.apache.manifoldcf.agents.output.solr.ModifiedCloudHttp2SolrClient.Builder
-
- Direct Known Subclasses:
ModifiedCloudSolrClient.Builder
- Enclosing class:
- ModifiedCloudHttp2SolrClient
public static class ModifiedCloudHttp2SolrClient.Builder extends java.lang.Object
ConstructsCloudHttp2SolrClient
instances from provided configuration.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
directUpdatesToLeadersOnly
protected ModifiedHttp2SolrClient
httpClient
protected ModifiedHttp2SolrClient.Builder
internalClientBuilder
protected boolean
parallelUpdates
protected boolean
shardLeadersOnly
protected java.util.List<java.lang.String>
solrUrls
protected org.apache.solr.client.solrj.impl.ClusterStateProvider
stateProvider
protected java.lang.String
zkChroot
protected java.util.Collection<java.lang.String>
zkHosts
-
Constructor Summary
Constructors Constructor Description Builder(java.util.List<java.lang.String> solrUrls)
Provide a series of Solr URLs to be used when configuringCloudHttp2SolrClient
instances.Builder(java.util.List<java.lang.String> zkHosts, java.util.Optional<java.lang.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 ModifiedCloudHttp2SolrClient
build()
Create aCloudHttp2SolrClient
based on the provided configuration.ModifiedCloudHttp2SolrClient.Builder
sendDirectUpdatesToAnyShardReplica()
TellsCloudHttp2SolrClient.Builder
that created clients can send updates to any shard replica (shard leaders and non-leaders).ModifiedCloudHttp2SolrClient.Builder
sendDirectUpdatesToShardLeadersOnly()
TellsCloudHttp2SolrClient.Builder
that created clients should send direct updates to shard leaders only.ModifiedCloudHttp2SolrClient.Builder
withHttpClient(ModifiedHttp2SolrClient httpClient)
ModifiedCloudHttp2SolrClient.Builder
withInternalClientBuilder(ModifiedHttp2SolrClient.Builder internalClientBuilder)
If provided, the CloudHttp2SolrClient will build it's internal ModifiedHttp2SolrClient using this builder (instead of the empty default one).ModifiedCloudHttp2SolrClient.Builder
withParallelUpdates(boolean parallelUpdates)
TellsCloudHttp2SolrClient.Builder
whether created clients should send shard updates serially or in parallel
-
-
-
Field Detail
-
zkHosts
protected java.util.Collection<java.lang.String> zkHosts
-
solrUrls
protected java.util.List<java.lang.String> solrUrls
-
zkChroot
protected java.lang.String zkChroot
-
httpClient
protected ModifiedHttp2SolrClient httpClient
-
shardLeadersOnly
protected boolean shardLeadersOnly
-
directUpdatesToLeadersOnly
protected boolean directUpdatesToLeadersOnly
-
parallelUpdates
protected boolean parallelUpdates
-
stateProvider
protected org.apache.solr.client.solrj.impl.ClusterStateProvider stateProvider
-
internalClientBuilder
protected ModifiedHttp2SolrClient.Builder internalClientBuilder
-
-
Constructor Detail
-
Builder
public Builder(java.util.List<java.lang.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(java.util.List<java.lang.String> zkHosts, java.util.Optional<java.lang.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 ModifiedCloudHttp2SolrClient.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 a
SolrException
-
sendDirectUpdatesToAnyShardReplica
public ModifiedCloudHttp2SolrClient.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 ModifiedCloudHttp2SolrClient.Builder withParallelUpdates(boolean parallelUpdates)
TellsCloudHttp2SolrClient.Builder
whether created clients should send shard updates serially or in parallelWhen an
UpdateRequest
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 ModifiedCloudHttp2SolrClient.Builder withHttpClient(ModifiedHttp2SolrClient httpClient)
-
withInternalClientBuilder
public ModifiedCloudHttp2SolrClient.Builder withInternalClientBuilder(ModifiedHttp2SolrClient.Builder internalClientBuilder)
If provided, the CloudHttp2SolrClient will build it's internal ModifiedHttp2SolrClient using this builder (instead of the empty default one). Providing this builder allows users to configure the internal clients (authentication, timeouts, etc).- Parameters:
internalClientBuilder
- the builder to use for creating the internal http client.- Returns:
- this
-
build
public ModifiedCloudHttp2SolrClient build()
Create aCloudHttp2SolrClient
based on the provided configuration.
-
-