Package org.apache.solr.client.solrj.impl

## Class ConcurrentUpdateHttp2SolrClient.Builder

- java.lang.Object
- - org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient.Builder

Enclosing class:
  ConcurrentUpdateHttp2SolrClient

    public static class ConcurrentUpdateHttp2SolrClient.Builder
    extends Object

Constructs `ConcurrentUpdateHttp2SolrClient` instances from provided configuration.

### Field Summary

Fields
`protected String` `baseSolrUrl`
`protected Http2SolrClient` `client`
`protected boolean` `closeHttp2Client`
`protected ExecutorService` `executorService`
`protected int` `queueSize`
`protected boolean` `streamDeletes`
`protected int` `threadCount`

### Constructor Summary

Constructors
`Builder​(String baseSolrUrl, Http2SolrClient client)`
`Builder​(String baseSolrUrl, Http2SolrClient client, boolean closeHttp2Client)`

### Method Summary

All Methods Instance Methods Concrete Methods
`ConcurrentUpdateHttp2SolrClient.Builder` `alwaysStreamDeletes()` Configures created clients to always stream delete requests.
`ConcurrentUpdateHttp2SolrClient` `build()` Create a `ConcurrentUpdateHttp2SolrClient` based on the provided configuration options.
`ConcurrentUpdateHttp2SolrClient.Builder` `neverStreamDeletes()` Configures created clients to not stream delete requests.
`ConcurrentUpdateHttp2SolrClient.Builder` `withExecutorService​(ExecutorService executorService)` Provides the `ExecutorService` for the created client to use when servicing the update-request queue.
`ConcurrentUpdateHttp2SolrClient.Builder` `withQueueSize​(int queueSize)` The maximum number of requests buffered by the SolrClient's internal queue before being processed by background threads.
`ConcurrentUpdateHttp2SolrClient.Builder` `withThreadCount​(int threadCount)` The maximum number of threads used to empty `ConcurrentUpdateHttp2SolrClient`s queue.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### client

    protected Http2SolrClient client

#### baseSolrUrl

    protected String baseSolrUrl

#### queueSize

    protected int queueSize

#### threadCount

    protected int threadCount

#### executorService

    protected ExecutorService executorService

#### streamDeletes

    protected boolean streamDeletes

#### closeHttp2Client

    protected boolean closeHttp2Client

### Constructor Detail

#### Builder

    public Builder​(String baseSolrUrl,
                   Http2SolrClient client)

#### Builder

    public Builder​(String baseSolrUrl,
                   Http2SolrClient client,
                   boolean closeHttp2Client)

### Method Detail

#### withQueueSize

    public ConcurrentUpdateHttp2SolrClient.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 ConcurrentUpdateHttp2SolrClient.Builder withThreadCount​(int threadCount)

The maximum number of threads used to empty `ConcurrentUpdateHttp2SolrClient`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.

#### withExecutorService

    public ConcurrentUpdateHttp2SolrClient.Builder withExecutorService​(ExecutorService executorService)

Provides the `ExecutorService` for the created client to use when servicing the update-request queue.

#### alwaysStreamDeletes

    public ConcurrentUpdateHttp2SolrClient.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 ConcurrentUpdateHttp2SolrClient.Builder neverStreamDeletes()

Configures created clients to not stream delete requests.

With this option set when the created ConcurrentUpdateHttp2SolrClient 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 ConcurrentUpdateHttp2SolrClient build()

Create a `ConcurrentUpdateHttp2SolrClient` based on the provided configuration options.