public class CloudSolrClient extends SolrClient
LBHttpSolrClient
to issue requests.
This class assumes the id field for your documents is called
'id' - if this is not the case, you must set the right name
with setIdField(String)
.Modifier and Type | Class and Description |
---|---|
static class |
CloudSolrClient.Builder
Constructs
CloudSolrClient instances from provided configuration. |
static class |
CloudSolrClient.RouteException |
static class |
CloudSolrClient.RouteResponse |
Modifier and Type | Field and Description |
---|---|
protected org.apache.solr.client.solrj.impl.CloudSolrClient.StateCache |
collectionStateCache |
static String |
STATE_VERSION |
Modifier | Constructor and Description |
---|---|
protected |
CloudSolrClient(CloudSolrClient.Builder builder)
Create a new client object that connects to Zookeeper and is always aware
of the SolrCloud state.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
CloudSolrClient.RouteResponse |
condenseResponse(NamedList response,
int timeMillis) |
void |
connect()
Connect to the zookeeper ensemble.
|
void |
connect(long duration,
TimeUnit timeUnit)
Connect to a cluster.
|
ClusterStateProvider |
getClusterStateProvider() |
String |
getDefaultCollection()
Gets the default collection for request
|
protected DocCollection |
getDocCollection(String collection,
Integer expectedVersion) |
org.apache.http.client.HttpClient |
getHttpClient() |
String |
getIdField() |
LBHttpSolrClient |
getLbClient() |
int |
getMinAchievedReplicationFactor(String collection,
NamedList resp)
Useful for determining the minimum achieved replication factor across
all shards involved in processing an update request, typically useful
for gauging the replication factor of a batch.
|
ResponseParser |
getParser() |
RequestWriter |
getRequestWriter() |
Map<String,Integer> |
getShardReplicationFactor(String collection,
NamedList resp)
Walks the NamedList response after performing an update request looking for
the replication factor that was achieved in each shard involved in the request.
|
String |
getZkHost() |
ZkStateReader |
getZkStateReader() |
boolean |
isDirectUpdatesToLeadersOnly() |
boolean |
isParallelUpdates()
Gets whether direct updates are sent in parallel
|
boolean |
isUpdatesToLeaders() |
void |
registerCollectionStateWatcher(String collection,
CollectionStateWatcher watcher)
Register a CollectionStateWatcher to be called when the cluster state for a collection changes
Note that the watcher is unregistered after it has been called once.
|
NamedList<Object> |
request(SolrRequest request,
String collection)
Execute a request against a Solr server for a given collection
|
protected NamedList<Object> |
requestWithRetryOnStaleState(SolrRequest request,
int retryCount,
List<String> inputCollections)
As this class doesn't watch external collections on the client side,
there's a chance that the request will fail due to cached stale state,
which means the state must be refreshed from ZK and retried.
|
protected NamedList<Object> |
sendRequest(SolrRequest request,
List<String> inputCollections) |
void |
setCollectionCacheTTl(int seconds)
Sets the cache ttl for DocCollection Objects cached .
|
void |
setConnectionTimeout(int timeout)
Deprecated.
since 7.0 Use
CloudSolrClient.Builder methods instead. |
void |
setDefaultCollection(String collection)
Sets the default collection for request
|
void |
setIdField(String idField) |
void |
setParallelCacheRefreshes(int n)
If caches are expired they are refreshed after acquiring a lock.
|
void |
setParallelUpdates(boolean parallelUpdates)
Deprecated.
since 7.2 Use
CloudSolrClient.Builder methods instead. |
void |
setParser(ResponseParser processor)
Note: This setter method is not thread-safe.
|
void |
setRequestWriter(RequestWriter requestWriter) |
void |
setRetryExpiryTime(int secs)
This is the time to wait to refetch the state
after getting the same state version from ZK
|
void |
setSoTimeout(int timeout)
Deprecated.
since 7.0 Use
CloudSolrClient.Builder methods instead. |
void |
setZkClientTimeout(int zkClientTimeout)
Set the timeout to the zookeeper ensemble in ms
|
void |
setZkConnectTimeout(int zkConnectTimeout)
Set the connect timeout to the zookeeper ensemble in ms
|
void |
waitForState(String collection,
long wait,
TimeUnit unit,
CollectionStatePredicate predicate)
Block until a collection state matches a predicate, or a timeout
Note that the predicate may be called again even after it has returned true, so
implementors should avoid changing state within the predicate call itself.
|
add, add, add, add, add, add, add, add, add, add, addBean, addBean, addBean, addBean, addBeans, addBeans, addBeans, addBeans, addBeans, addBeans, commit, commit, commit, commit, commit, commit, deleteById, deleteById, deleteById, deleteById, deleteById, deleteById, deleteById, deleteById, deleteByQuery, deleteByQuery, deleteByQuery, deleteByQuery, getBinder, getById, getById, getById, getById, getById, getById, getById, getById, optimize, optimize, optimize, optimize, optimize, optimize, ping, query, query, query, query, queryAndStreamResponse, queryAndStreamResponse, request, rollback, rollback
public static final String STATE_VERSION
protected final org.apache.solr.client.solrj.impl.CloudSolrClient.StateCache collectionStateCache
protected CloudSolrClient(CloudSolrClient.Builder builder)
builder
- a CloudSolrClient.Builder
with the options used to create the client.public void setRetryExpiryTime(int secs)
secs
@Deprecated public void setSoTimeout(int timeout)
CloudSolrClient.Builder
methods instead.public void setCollectionCacheTTl(int seconds)
seconds
- ttl value in secondspublic ResponseParser getParser()
public void setParser(ResponseParser processor)
processor
- Default Response Parser chosen to parse the response if the parser
were not specified as part of the request.SolrRequest.getResponseParser()
public RequestWriter getRequestWriter()
public void setRequestWriter(RequestWriter requestWriter)
public String getZkHost()
public ZkStateReader getZkStateReader()
public void setIdField(String idField)
idField
- the field to route documents on.public String getIdField()
public void setDefaultCollection(String collection)
public String getDefaultCollection()
public void setZkConnectTimeout(int zkConnectTimeout)
public void setZkClientTimeout(int zkClientTimeout)
public boolean isParallelUpdates()
@Deprecated public void setParallelUpdates(boolean parallelUpdates)
CloudSolrClient.Builder
methods instead.public void connect()
public void connect(long duration, TimeUnit timeUnit) throws TimeoutException, InterruptedException
duration
- the timeouttimeUnit
- the units of the timeoutTimeoutException
- if the cluster is not ready after the timeoutInterruptedException
- if the wait is interruptedpublic void waitForState(String collection, long wait, TimeUnit unit, CollectionStatePredicate predicate) throws InterruptedException, TimeoutException
collection
- the collection to watchwait
- how long to waitunit
- the units of the wait parameterpredicate
- a CollectionStatePredicate
to check the collection stateInterruptedException
- on interruptTimeoutException
- on timeoutpublic void registerCollectionStateWatcher(String collection, CollectionStateWatcher watcher)
CollectionStateWatcher.onStateChanged(Set, DocCollection)
callcollection
- the collection to watchwatcher
- a watcher that will be called when the state changespublic CloudSolrClient.RouteResponse condenseResponse(NamedList response, int timeMillis)
public NamedList<Object> request(SolrRequest request, String collection) throws SolrServerException, IOException
SolrClient
request
in class SolrClient
request
- the request to executecollection
- the collection to execute the request againstNamedList
containing the response from the serverSolrServerException
- if there is an error on the serverIOException
- If there is a low-level I/O error.protected NamedList<Object> requestWithRetryOnStaleState(SolrRequest request, int retryCount, List<String> inputCollections) throws SolrServerException, IOException
SolrServerException
IOException
protected NamedList<Object> sendRequest(SolrRequest request, List<String> inputCollections) throws SolrServerException, IOException
SolrServerException
IOException
public void close() throws IOException
IOException
public LBHttpSolrClient getLbClient()
public org.apache.http.client.HttpClient getHttpClient()
public boolean isUpdatesToLeaders()
public boolean isDirectUpdatesToLeadersOnly()
public void setParallelCacheRefreshes(int n)
protected DocCollection getDocCollection(String collection, Integer expectedVersion) throws SolrException
SolrException
public int getMinAchievedReplicationFactor(String collection, NamedList resp)
public Map<String,Integer> getShardReplicationFactor(String collection, NamedList resp)
@Deprecated public void setConnectionTimeout(int timeout)
CloudSolrClient.Builder
methods instead.public ClusterStateProvider getClusterStateProvider()
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.