Class ConcurrentUpdateSolrClient.Builder
- java.lang.Object
-
- org.apache.solr.client.solrj.impl.SolrClientBuilder<ConcurrentUpdateSolrClient.Builder>
-
- org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient.Builder
-
- Enclosing class:
- ConcurrentUpdateSolrClient
public static class ConcurrentUpdateSolrClient.Builder extends SolrClientBuilder<ConcurrentUpdateSolrClient.Builder>
ConstructsConcurrentUpdateSolrClient
instances from provided configuration.
-
-
Field Summary
Fields Modifier and Type Field Description protected String
baseSolrUrl
protected ExecutorService
executorService
protected int
pollQueueTime
protected int
queueSize
protected boolean
streamDeletes
protected int
threadCount
-
Fields inherited from class org.apache.solr.client.solrj.impl.SolrClientBuilder
connectionTimeoutMillis, defaultCollection, followRedirects, httpClient, requestWriter, responseParser, socketTimeoutMillis, timeToLiveSeconds, urlParamNames, useMultiPartPost
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConcurrentUpdateSolrClient.Builder
alwaysStreamDeletes()
Configures created clients to always stream delete requests.ConcurrentUpdateSolrClient
build()
Create aConcurrentUpdateSolrClient
based on the provided configuration options.ConcurrentUpdateSolrClient.Builder
getThis()
The solution for the unchecked cast warning.ConcurrentUpdateSolrClient.Builder
neverStreamDeletes()
Configures created clients to not stream delete requests.ConcurrentUpdateSolrClient.Builder
withExecutorService(ExecutorService executorService)
Provides theExecutorService
for the created client to use when servicing the update-request queue.ConcurrentUpdateSolrClient.Builder
withPollQueueTime(int pollQueueTime)
ConcurrentUpdateSolrClient.Builder
withQueueSize(int queueSize)
The maximum number of requests buffered by the SolrClient's internal queue before being processed by background threads.ConcurrentUpdateSolrClient.Builder
withThreadCount(int threadCount)
The maximum number of threads used to emptyConcurrentUpdateSolrClient
s queue.-
Methods inherited from class org.apache.solr.client.solrj.impl.SolrClientBuilder
allowMultiPartPost, getConnectionTimeoutMillis, getSocketTimeoutMillis, withConnectionTimeout, withConnectionTimeout, withDefaultCollection, withFollowRedirects, withHttpClient, withRequestWriter, withResponseParser, withSocketTimeout, withSocketTimeout, withTheseParamNamesInTheUrl
-
-
-
-
Field Detail
-
baseSolrUrl
protected String baseSolrUrl
-
queueSize
protected int queueSize
-
threadCount
protected int threadCount
-
pollQueueTime
protected int pollQueueTime
-
executorService
protected ExecutorService executorService
-
streamDeletes
protected boolean streamDeletes
-
-
Constructor Detail
-
Builder
public Builder(String baseSolrUrl)
Create a Builder object, based on the provided Solr URL.Two different paths can be specified as a part of this URL:
1) A path pointing directly at a particular core
SolrClient client = new ConcurrentUpdateSolrClient.Builder("http://my-solr-server:8983/solr/core1").build(); QueryResponse resp = client.query(new SolrQuery("*:*"));
Note that when a core is provided in the base URL, queries and other requests can be made without mentioning the core explicitly. However, the client can only send requests to that core. Attempts to make core-agnostic requests, or requests for other cores will fail.Use of these core-based URLs is deprecated and will not be supported in Solr 10.0 Users should instead provide base URLs as described below, and provide a "default collection" as desired using
SolrClientBuilder.withDefaultCollection(String)
2) The path of the root Solr path ("/solr")
SolrClient client = new ConcurrentUpdateSolrClient.Builder("http://my-solr-server:8983/solr").build(); QueryResponse resp = client.query("core1", new SolrQuery("*:*"));
In this case the client is more flexible and can be used to send requests to any cores. Users can still provide a "default" collection if desired through use ofSolrClientBuilder.withDefaultCollection(String)
.
-
-
Method Detail
-
withQueueSize
public ConcurrentUpdateSolrClient.Builder withQueueSize(int queueSize)
The maximum number of requests buffered by the SolrClient's internal queue before being processed by background threads.This value should be carefully paired with the number of queue-consumer threads. A queue with a maximum size set too high may require more memory. A queue with a maximum size set too low may suffer decreased throughput as
SolrClient.request(SolrRequest)
calls block waiting to add requests to the queue.If not set, this defaults to 10.
- See Also:
withThreadCount(int)
-
withThreadCount
public ConcurrentUpdateSolrClient.Builder withThreadCount(int threadCount)
The maximum number of threads used to emptyConcurrentUpdateSolrClient
s queue.Threads are created when documents are added to the client's internal queue and exit when no updates remain in the queue.
This value should be carefully paired with the maximum queue capacity. A client with too few threads may suffer decreased throughput as the queue fills up and
SolrClient.request(SolrRequest)
calls block waiting to add requests to the queue.
-
withPollQueueTime
public ConcurrentUpdateSolrClient.Builder withPollQueueTime(int pollQueueTime)
-
withExecutorService
public ConcurrentUpdateSolrClient.Builder withExecutorService(ExecutorService executorService)
Provides theExecutorService
for the created client to use when servicing the update-request queue.
-
alwaysStreamDeletes
public ConcurrentUpdateSolrClient.Builder alwaysStreamDeletes()
Configures created clients to always stream delete requests.Streamed deletes are put into the update-queue and executed like any other update request.
-
neverStreamDeletes
public ConcurrentUpdateSolrClient.Builder neverStreamDeletes()
Configures created clients to not stream delete requests.With this option set when the created ConcurrentUpdateSolrClient sents a delete request it will first will lock the queue and block until all queued updates have been sent, and then send the delete request.
-
build
public ConcurrentUpdateSolrClient build()
Create aConcurrentUpdateSolrClient
based on the provided configuration options.
-
getThis
public ConcurrentUpdateSolrClient.Builder getThis()
Description copied from class:SolrClientBuilder
The solution for the unchecked cast warning.- Specified by:
getThis
in classSolrClientBuilder<ConcurrentUpdateSolrClient.Builder>
-
-