Class SolrClient
- java.lang.Object
-
- org.apache.solr.client.solrj.SolrClient
-
- All Implemented Interfaces:
Closeable
,Serializable
,AutoCloseable
- Direct Known Subclasses:
BaseHttpSolrClient
,CloudSolrClient
,ConcurrentUpdateHttp2SolrClient
,ConcurrentUpdateSolrClient
,Http2SolrClient
,LBSolrClient
public abstract class SolrClient extends Object implements Serializable, Closeable
Abstraction through which all communication with a Solr server may be routed- Since:
- 5.0, replaced
SolrServer
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SolrClient()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description UpdateResponse
add(String collection, Collection<SolrInputDocument> docs)
Adds a collection of documentsUpdateResponse
add(String collection, Collection<SolrInputDocument> docs, int commitWithinMs)
Adds a collection of documents, specifying max time before they become committedUpdateResponse
add(String collection, Iterator<SolrInputDocument> docIterator)
Adds the documents supplied by the given iterator.UpdateResponse
add(String collection, SolrInputDocument doc)
Adds a single documentUpdateResponse
add(String collection, SolrInputDocument doc, int commitWithinMs)
Adds a single document specifying max time before it becomes committedUpdateResponse
add(Collection<SolrInputDocument> docs)
Adds a collection of documentsUpdateResponse
add(Collection<SolrInputDocument> docs, int commitWithinMs)
Adds a collection of documents, specifying max time before they become committedUpdateResponse
add(Iterator<SolrInputDocument> docIterator)
Adds the documents supplied by the given iterator.UpdateResponse
add(SolrInputDocument doc)
Adds a single documentUpdateResponse
add(SolrInputDocument doc, int commitWithinMs)
Adds a single document specifying max time before it becomes committedUpdateResponse
addBean(Object obj)
Adds a single beanUpdateResponse
addBean(Object obj, int commitWithinMs)
Adds a single bean specifying max time before it becomes committedUpdateResponse
addBean(String collection, Object obj)
Adds a single beanUpdateResponse
addBean(String collection, Object obj, int commitWithinMs)
Adds a single bean specifying max time before it becomes committedUpdateResponse
addBeans(String collection, Collection<?> beans)
Adds a collection of beansUpdateResponse
addBeans(String collection, Collection<?> beans, int commitWithinMs)
Adds a collection of beans specifying max time before they become committedUpdateResponse
addBeans(String collection, Iterator<?> beanIterator)
Adds the beans supplied by the given iterator.UpdateResponse
addBeans(Collection<?> beans)
Adds a collection of beansUpdateResponse
addBeans(Collection<?> beans, int commitWithinMs)
Adds a collection of beans specifying max time before they become committedUpdateResponse
addBeans(Iterator<?> beanIterator)
Adds the beans supplied by the given iterator.UpdateResponse
commit()
Performs an explicit commit, causing pending documents to be committed for indexingUpdateResponse
commit(boolean waitFlush, boolean waitSearcher)
Performs an explicit commit, causing pending documents to be committed for indexingUpdateResponse
commit(boolean waitFlush, boolean waitSearcher, boolean softCommit)
Performs an explicit commit, causing pending documents to be committed for indexingUpdateResponse
commit(String collection)
Performs an explicit commit, causing pending documents to be committed for indexingUpdateResponse
commit(String collection, boolean waitFlush, boolean waitSearcher)
Performs an explicit commit, causing pending documents to be committed for indexingUpdateResponse
commit(String collection, boolean waitFlush, boolean waitSearcher, boolean softCommit)
Performs an explicit commit, causing pending documents to be committed for indexingUpdateResponse
deleteById(String id)
Deletes a single document by unique ID.UpdateResponse
deleteById(String id, int commitWithinMs)
Deletes a single document by unique ID, specifying max time before commit.UpdateResponse
deleteById(String collection, String id)
Deletes a single document by unique ID.UpdateResponse
deleteById(String collection, String id, int commitWithinMs)
Deletes a single document by unique ID, specifying max time before commit.UpdateResponse
deleteById(String collection, List<String> ids)
Deletes a list of documents by unique ID.UpdateResponse
deleteById(String collection, List<String> ids, int commitWithinMs)
Deletes a list of documents by unique ID, specifying max time before commit.UpdateResponse
deleteById(List<String> ids)
Deletes a list of documents by unique ID.UpdateResponse
deleteById(List<String> ids, int commitWithinMs)
Deletes a list of documents by unique ID, specifying max time before commit.UpdateResponse
deleteByQuery(String query)
Deletes documents from the index based on a queryUpdateResponse
deleteByQuery(String query, int commitWithinMs)
Deletes documents from the index based on a query, specifying max time before commitUpdateResponse
deleteByQuery(String collection, String query)
Deletes documents from the index based on a queryUpdateResponse
deleteByQuery(String collection, String query, int commitWithinMs)
Deletes documents from the index based on a query, specifying max time before commitDocumentObjectBinder
getBinder()
Get theDocumentObjectBinder
for this client.SolrDocument
getById(String id)
Retrieves the SolrDocument associated with the given identifier.SolrDocument
getById(String collection, String id)
Retrieves the SolrDocument associated with the given identifier.SolrDocument
getById(String collection, String id, SolrParams params)
Retrieves the SolrDocument associated with the given identifier and uses the SolrParams to execute the request.SolrDocumentList
getById(String collection, Collection<String> ids)
Retrieves the SolrDocuments associated with the given identifiers.SolrDocumentList
getById(String collection, Collection<String> ids, SolrParams params)
Retrieves the SolrDocuments associated with the given identifiers and uses the SolrParams to execute the request.SolrDocument
getById(String id, SolrParams params)
Retrieves the SolrDocument associated with the given identifier and uses the SolrParams to execute the request.SolrDocumentList
getById(Collection<String> ids)
Retrieves the SolrDocuments associated with the given identifiers.SolrDocumentList
getById(Collection<String> ids, SolrParams params)
Retrieves the SolrDocuments associated with the given identifiers and uses the SolrParams to execute the request.SolrRequest.SolrClientContext
getContext()
This method defines the context in which this Solr client is being used (e.g.UpdateResponse
optimize()
Performs an explicit optimize, causing a merge of all segments to one.UpdateResponse
optimize(boolean waitFlush, boolean waitSearcher)
Performs an explicit optimize, causing a merge of all segments to one.UpdateResponse
optimize(boolean waitFlush, boolean waitSearcher, int maxSegments)
Performs an explicit optimize, causing a merge of all segments to one.UpdateResponse
optimize(String collection)
Performs an explicit optimize, causing a merge of all segments to one.UpdateResponse
optimize(String collection, boolean waitFlush, boolean waitSearcher)
Performs an explicit optimize, causing a merge of all segments to one.UpdateResponse
optimize(String collection, boolean waitFlush, boolean waitSearcher, int maxSegments)
Performs an explicit optimize, causing a merge of all segments to one.SolrPingResponse
ping()
Issues a ping request to check if the server is aliveSolrPingResponse
ping(String collection)
Issues a ping request to check if the collection's replicas are aliveQueryResponse
query(String collection, SolrParams params)
Performs a query to the Solr serverQueryResponse
query(String collection, SolrParams params, SolrRequest.METHOD method)
Performs a query to the Solr serverQueryResponse
query(SolrParams params)
Performs a query to the Solr serverQueryResponse
query(SolrParams params, SolrRequest.METHOD method)
Performs a query to the Solr serverQueryResponse
queryAndStreamResponse(String collection, SolrParams params, FastStreamingDocsCallback callback)
QueryResponse
queryAndStreamResponse(String collection, SolrParams params, StreamingResponseCallback callback)
Query solr, and stream the results.QueryResponse
queryAndStreamResponse(SolrParams params, StreamingResponseCallback callback)
Query solr, and stream the results.NamedList<Object>
request(SolrRequest<?> request)
Execute a request against a Solr serverabstract NamedList<Object>
request(SolrRequest<?> request, String collection)
Execute a request against a Solr server for a given collectionUpdateResponse
rollback()
Performs a rollback of all non-committed documents pending.UpdateResponse
rollback(String collection)
Performs a rollback of all non-committed documents pending.
-
-
-
Method Detail
-
add
public UpdateResponse add(String collection, Collection<SolrInputDocument> docs) throws SolrServerException, IOException
Adds a collection of documents- Parameters:
collection
- the Solr collection to add documents todocs
- the collection of documents- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- Solr 5.1
-
add
public UpdateResponse add(Collection<SolrInputDocument> docs) throws SolrServerException, IOException
Adds a collection of documents- Parameters:
docs
- the collection of documents- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
add
public UpdateResponse add(String collection, Collection<SolrInputDocument> docs, int commitWithinMs) throws SolrServerException, IOException
Adds a collection of documents, specifying max time before they become committed- Parameters:
collection
- the Solr collection to add documents todocs
- the collection of documentscommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- Solr 5.1
-
add
public UpdateResponse add(Collection<SolrInputDocument> docs, int commitWithinMs) throws SolrServerException, IOException
Adds a collection of documents, specifying max time before they become committed- Parameters:
docs
- the collection of documentscommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- Solr 3.5
-
add
public UpdateResponse add(String collection, SolrInputDocument doc) throws SolrServerException, IOException
Adds a single document- Parameters:
collection
- the Solr collection to add the document todoc
- the input document- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
add
public UpdateResponse add(SolrInputDocument doc) throws SolrServerException, IOException
Adds a single documentMany
SolrClient
implementations have drastically slower indexing performance when documents are added individually. Document batching generally leads to better indexing performance and should be used whenever possible.- Parameters:
doc
- the input document- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
add
public UpdateResponse add(String collection, SolrInputDocument doc, int commitWithinMs) throws SolrServerException, IOException
Adds a single document specifying max time before it becomes committed- Parameters:
collection
- the Solr collection to add the document todoc
- the input documentcommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- solr 5.1
-
add
public UpdateResponse add(SolrInputDocument doc, int commitWithinMs) throws SolrServerException, IOException
Adds a single document specifying max time before it becomes committed- Parameters:
doc
- the input documentcommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- solr 3.5
-
add
public UpdateResponse add(String collection, Iterator<SolrInputDocument> docIterator) throws SolrServerException, IOException
Adds the documents supplied by the given iterator.- Parameters:
collection
- the Solr collection to add the documents todocIterator
- the iterator which returns SolrInputDocument instances- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
add
public UpdateResponse add(Iterator<SolrInputDocument> docIterator) throws SolrServerException, IOException
Adds the documents supplied by the given iterator.- Parameters:
docIterator
- the iterator which returns SolrInputDocument instances- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBean
public UpdateResponse addBean(String collection, Object obj) throws IOException, SolrServerException
Adds a single beanThe bean is converted to a
SolrInputDocument
by the client'sDocumentObjectBinder
Many
SolrClient
implementations have drastically slower indexing performance when documents are added individually. Document batching generally leads to better indexing performance and should be used whenever possible.- Parameters:
collection
- to Solr collection to add documents toobj
- the input bean- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBean
public UpdateResponse addBean(Object obj) throws IOException, SolrServerException
Adds a single beanThe bean is converted to a
SolrInputDocument
by the client'sDocumentObjectBinder
- Parameters:
obj
- the input bean- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBean
public UpdateResponse addBean(String collection, Object obj, int commitWithinMs) throws IOException, SolrServerException
Adds a single bean specifying max time before it becomes committedThe bean is converted to a
SolrInputDocument
by the client'sDocumentObjectBinder
- Parameters:
collection
- to Solr collection to add documents toobj
- the input bean- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBean
public UpdateResponse addBean(Object obj, int commitWithinMs) throws IOException, SolrServerException
Adds a single bean specifying max time before it becomes committedThe bean is converted to a
SolrInputDocument
by the client'sDocumentObjectBinder
- Parameters:
obj
- the input bean- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBeans
public UpdateResponse addBeans(String collection, Collection<?> beans) throws SolrServerException, IOException
Adds a collection of beansThe beans are converted to
SolrInputDocument
s by the client'sDocumentObjectBinder
- Parameters:
collection
- the Solr collection to add documents tobeans
- the collection of beans- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBeans
public UpdateResponse addBeans(Collection<?> beans) throws SolrServerException, IOException
Adds a collection of beansThe beans are converted to
SolrInputDocument
s by the client'sDocumentObjectBinder
- Parameters:
beans
- the collection of beans- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBeans
public UpdateResponse addBeans(String collection, Collection<?> beans, int commitWithinMs) throws SolrServerException, IOException
Adds a collection of beans specifying max time before they become committedThe beans are converted to
SolrInputDocument
s by the client'sDocumentObjectBinder
- Parameters:
collection
- the Solr collection to add documents tobeans
- the collection of beanscommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- solr 5.1
- See Also:
getBinder()
-
addBeans
public UpdateResponse addBeans(Collection<?> beans, int commitWithinMs) throws SolrServerException, IOException
Adds a collection of beans specifying max time before they become committedThe beans are converted to
SolrInputDocument
s by the client'sDocumentObjectBinder
- Parameters:
beans
- the collection of beanscommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server- Since:
- solr 3.5
- See Also:
getBinder()
-
addBeans
public UpdateResponse addBeans(String collection, Iterator<?> beanIterator) throws SolrServerException, IOException
Adds the beans supplied by the given iterator.- Parameters:
collection
- the Solr collection to add the documents tobeanIterator
- the iterator which returns Beans- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
addBeans
public UpdateResponse addBeans(Iterator<?> beanIterator) throws SolrServerException, IOException
Adds the beans supplied by the given iterator.- Parameters:
beanIterator
- the iterator which returns Beans- Returns:
- an
UpdateResponse
from the server - Throws:
IOException
- if there is a communication error with the serverSolrServerException
- if there is an error on the server
-
commit
public UpdateResponse commit(String collection) throws SolrServerException, IOException
Performs an explicit commit, causing pending documents to be committed for indexingwaitFlush=true and waitSearcher=true to be inline with the defaults for plain HTTP access
Be very careful when triggering commits from the client side. Commits are heavy operations and WILL impact Solr performance when executed too often or too close together. Instead, consider using 'commitWithin' when adding documents or rely on your core's/collection's 'autoCommit' settings.
- Parameters:
collection
- the Solr collection to send the commit to- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
commit
public UpdateResponse commit() throws SolrServerException, IOException
Performs an explicit commit, causing pending documents to be committed for indexingwaitFlush=true and waitSearcher=true to be inline with the defaults for plain HTTP access
Be very careful when triggering commits from the client side. Commits are heavy operations and WILL impact Solr performance when executed too often or too close together. Instead, consider using 'commitWithin' when adding documents or rely on your core's/collection's 'autoCommit' settings.
- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
commit
public UpdateResponse commit(String collection, boolean waitFlush, boolean waitSearcher) throws SolrServerException, IOException
Performs an explicit commit, causing pending documents to be committed for indexingBe very careful when triggering commits from the client side. Commits are heavy operations and WILL impact Solr performance when executed too often or too close together. Instead, consider using 'commitWithin' when adding documents or rely on your core's/collection's 'autoCommit' settings.
- Parameters:
collection
- the Solr collection to send the commit towaitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visible- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
commit
public UpdateResponse commit(boolean waitFlush, boolean waitSearcher) throws SolrServerException, IOException
Performs an explicit commit, causing pending documents to be committed for indexingBe very careful when triggering commits from the client side. Commits are heavy operations and WILL impact Solr performance when executed too often or too close together. Instead, consider using 'commitWithin' when adding documents or rely on your core's/collection's 'autoCommit' settings.
- Parameters:
waitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visible- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
commit
public UpdateResponse commit(String collection, boolean waitFlush, boolean waitSearcher, boolean softCommit) throws SolrServerException, IOException
Performs an explicit commit, causing pending documents to be committed for indexingBe very careful when triggering commits from the client side. Commits are heavy operations and WILL impact Solr performance when executed too often or too close together. Instead, consider using 'commitWithin' when adding documents or rely on your core's/collection's 'autoCommit' settings.
- Parameters:
collection
- the Solr collection to send the commit towaitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visiblesoftCommit
- makes index changes visible while neither fsync-ing index files nor writing a new index descriptor- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
commit
public UpdateResponse commit(boolean waitFlush, boolean waitSearcher, boolean softCommit) throws SolrServerException, IOException
Performs an explicit commit, causing pending documents to be committed for indexingBe very careful when triggering commits from the client side. Commits are heavy operations and WILL impact Solr performance when executed too often or too close together. Instead, consider using 'commitWithin' when adding documents or rely on your core's/collection's 'autoCommit' settings.
- Parameters:
waitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visiblesoftCommit
- makes index changes visible while neither fsync-ing index files nor writing a new index descriptor- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
optimize
public UpdateResponse optimize(String collection) throws SolrServerException, IOException
Performs an explicit optimize, causing a merge of all segments to one.waitFlush=true and waitSearcher=true to be inline with the defaults for plain HTTP access
Note: In most cases it is not required to do explicit optimize
- Parameters:
collection
- the Solr collection to send the optimize to- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
optimize
public UpdateResponse optimize() throws SolrServerException, IOException
Performs an explicit optimize, causing a merge of all segments to one.waitFlush=true and waitSearcher=true to be inline with the defaults for plain HTTP access
Note: In most cases it is not required to do explicit optimize
- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
optimize
public UpdateResponse optimize(String collection, boolean waitFlush, boolean waitSearcher) throws SolrServerException, IOException
Performs an explicit optimize, causing a merge of all segments to one.Note: In most cases it is not required to do explicit optimize
- Parameters:
collection
- the Solr collection to send the optimize towaitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visible- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
optimize
public UpdateResponse optimize(boolean waitFlush, boolean waitSearcher) throws SolrServerException, IOException
Performs an explicit optimize, causing a merge of all segments to one.Note: In most cases it is not required to do explicit optimize
- Parameters:
waitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visible- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
optimize
public UpdateResponse optimize(String collection, boolean waitFlush, boolean waitSearcher, int maxSegments) throws SolrServerException, IOException
Performs an explicit optimize, causing a merge of all segments to one.Note: In most cases it is not required to do explicit optimize
- Parameters:
collection
- the Solr collection to send the optimize towaitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visiblemaxSegments
- optimizes down to at most this number of segments- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
optimize
public UpdateResponse optimize(boolean waitFlush, boolean waitSearcher, int maxSegments) throws SolrServerException, IOException
Performs an explicit optimize, causing a merge of all segments to one.Note: In most cases it is not required to do explicit optimize
- Parameters:
waitFlush
- block until index changes are flushed to diskwaitSearcher
- block until a new searcher is opened and registered as the main query searcher, making the changes visiblemaxSegments
- optimizes down to at most this number of segments- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
rollback
public UpdateResponse rollback(String collection) throws SolrServerException, IOException
Performs a rollback of all non-committed documents pending.Note that this is not a true rollback as in databases. Content you have previously added may have been committed due to autoCommit, buffer full, other client performing a commit etc.
Also note that rollbacks reset changes made by all clients. Use this method carefully when multiple clients, or multithreaded clients are in use.
- Parameters:
collection
- the Solr collection to send the rollback to- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
rollback
public UpdateResponse rollback() throws SolrServerException, IOException
Performs a rollback of all non-committed documents pending.Note that this is not a true rollback as in databases. Content you have previously added may have been committed due to autoCommit, buffer full, other client performing a commit etc.
Also note that rollbacks reset changes made by all clients. Use this method carefully when multiple clients, or multithreaded clients are in use.
- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteById
public UpdateResponse deleteById(String collection, String id) throws SolrServerException, IOException
Deletes a single document by unique ID. Doesn't work for child/nested docs.- Parameters:
collection
- the Solr collection to delete the document fromid
- the ID of the document to delete- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteById
public UpdateResponse deleteById(String id) throws SolrServerException, IOException
Deletes a single document by unique ID. Doesn't work for child/nested docs.- Parameters:
id
- the ID of the document to delete- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteById
public UpdateResponse deleteById(String collection, String id, int commitWithinMs) throws SolrServerException, IOException
Deletes a single document by unique ID, specifying max time before commit. Doesn't work for child/nested docs.- Parameters:
collection
- the Solr collection to delete the document fromid
- the ID of the document to deletecommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- 5.1
-
deleteById
public UpdateResponse deleteById(String id, int commitWithinMs) throws SolrServerException, IOException
Deletes a single document by unique ID, specifying max time before commit. Doesn't work for child/nested docs.- Parameters:
id
- the ID of the document to deletecommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- 3.6
-
deleteById
public UpdateResponse deleteById(String collection, List<String> ids) throws SolrServerException, IOException
Deletes a list of documents by unique ID. Doesn't work for child/nested docs.- Parameters:
collection
- the Solr collection to delete the documents fromids
- the list of document IDs to delete; must be non-null and contain elements- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteById
public UpdateResponse deleteById(List<String> ids) throws SolrServerException, IOException
Deletes a list of documents by unique ID. Doesn't work for child/nested docs.- Parameters:
ids
- the list of document IDs to delete; must be non-null and contain elements- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteById
public UpdateResponse deleteById(String collection, List<String> ids, int commitWithinMs) throws SolrServerException, IOException
Deletes a list of documents by unique ID, specifying max time before commit. Doesn't work for child/nested docs.- Parameters:
collection
- the Solr collection to delete the documents fromids
- the list of document IDs to delete; must be non-null and contain elementscommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- 5.1
-
deleteById
public UpdateResponse deleteById(List<String> ids, int commitWithinMs) throws SolrServerException, IOException
Deletes a list of documents by unique ID, specifying max time before commit. Doesn't work for child/nested docs.- Parameters:
ids
- the list of document IDs to deletecommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- 3.6
-
deleteByQuery
public UpdateResponse deleteByQuery(String collection, String query) throws SolrServerException, IOException
Deletes documents from the index based on a query- Parameters:
collection
- the Solr collection to delete the documents fromquery
- the query expressing what documents to delete- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteByQuery
public UpdateResponse deleteByQuery(String query) throws SolrServerException, IOException
Deletes documents from the index based on a query- Parameters:
query
- the query expressing what documents to delete- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
deleteByQuery
public UpdateResponse deleteByQuery(String collection, String query, int commitWithinMs) throws SolrServerException, IOException
Deletes documents from the index based on a query, specifying max time before commit- Parameters:
collection
- the Solr collection to delete the documents fromquery
- the query expressing what documents to deletecommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- 5.1
-
deleteByQuery
public UpdateResponse deleteByQuery(String query, int commitWithinMs) throws SolrServerException, IOException
Deletes documents from the index based on a query, specifying max time before commit- Parameters:
query
- the query expressing what documents to deletecommitWithinMs
- max time (in ms) before a commit will happen- Returns:
- an
UpdateResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- 3.6
-
ping
public SolrPingResponse ping(String collection) throws SolrServerException, IOException
Issues a ping request to check if the collection's replicas are alive- Parameters:
collection
- collection to ping- Returns:
- a
SolrPingResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
ping
public SolrPingResponse ping() throws SolrServerException, IOException
Issues a ping request to check if the server is alive- Returns:
- a
SolrPingResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
query
public QueryResponse query(String collection, SolrParams params) throws SolrServerException, IOException
Performs a query to the Solr server- Parameters:
collection
- the Solr collection to queryparams
- an object holding all key/value parameters to send along the request- Returns:
- a
QueryResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
query
public QueryResponse query(SolrParams params) throws SolrServerException, IOException
Performs a query to the Solr server- Parameters:
params
- an object holding all key/value parameters to send along the request- Returns:
- a
QueryResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
query
public QueryResponse query(String collection, SolrParams params, SolrRequest.METHOD method) throws SolrServerException, IOException
Performs a query to the Solr server- Parameters:
collection
- the Solr collection to queryparams
- an object holding all key/value parameters to send along the requestmethod
- specifies the HTTP method to use for the request, such as GET or POST- Returns:
- a
QueryResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
query
public QueryResponse query(SolrParams params, SolrRequest.METHOD method) throws SolrServerException, IOException
Performs a query to the Solr server- Parameters:
params
- an object holding all key/value parameters to send along the requestmethod
- specifies the HTTP method to use for the request, such as GET or POST- Returns:
- a
QueryResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
queryAndStreamResponse
public QueryResponse queryAndStreamResponse(String collection, SolrParams params, StreamingResponseCallback callback) throws SolrServerException, IOException
Query solr, and stream the results. Unlike the standard query, this will send events for each Document rather then add them to the QueryResponse.Although this function returns a 'QueryResponse' it should be used with care since it excludes anything that was passed to callback. Also note that future version may pass even more info to the callback and may not return the results in the QueryResponse.
- Parameters:
collection
- the Solr collection to queryparams
- an object holding all key/value parameters to send along the requestcallback
- the callback to stream results to- Returns:
- a
QueryResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- solr 5.1
-
queryAndStreamResponse
public QueryResponse queryAndStreamResponse(String collection, SolrParams params, FastStreamingDocsCallback callback) throws SolrServerException, IOException
- Throws:
SolrServerException
IOException
-
queryAndStreamResponse
public QueryResponse queryAndStreamResponse(SolrParams params, StreamingResponseCallback callback) throws SolrServerException, IOException
Query solr, and stream the results. Unlike the standard query, this will send events for each Document rather then add them to the QueryResponse.Although this function returns a 'QueryResponse' it should be used with care since it excludes anything that was passed to callback. Also note that future version may pass even more info to the callback and may not return the results in the QueryResponse.
- Parameters:
params
- an object holding all key/value parameters to send along the requestcallback
- the callback to stream results to- Returns:
- a
QueryResponse
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server- Since:
- solr 4.0
-
getById
public SolrDocument getById(String collection, String id) throws SolrServerException, IOException
Retrieves the SolrDocument associated with the given identifier.- Parameters:
collection
- the Solr collection to queryid
- the id- Returns:
- retrieved SolrDocument, or null if no document is found.
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocument getById(String id) throws SolrServerException, IOException
Retrieves the SolrDocument associated with the given identifier.- Parameters:
id
- the id- Returns:
- retrieved SolrDocument, or null if no document is found.
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocument getById(String collection, String id, SolrParams params) throws SolrServerException, IOException
Retrieves the SolrDocument associated with the given identifier and uses the SolrParams to execute the request.- Parameters:
collection
- the Solr collection to queryid
- the idparams
- additional parameters to add to the query- Returns:
- retrieved SolrDocument, or null if no document is found.
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocument getById(String id, SolrParams params) throws SolrServerException, IOException
Retrieves the SolrDocument associated with the given identifier and uses the SolrParams to execute the request.- Parameters:
id
- the idparams
- additional parameters to add to the query- Returns:
- retrieved SolrDocument, or null if no document is found.
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocumentList getById(String collection, Collection<String> ids) throws SolrServerException, IOException
Retrieves the SolrDocuments associated with the given identifiers.If a document was not found, it will not be added to the SolrDocumentList.
- Parameters:
collection
- the Solr collection to queryids
- the ids- Returns:
- a SolrDocumentList, or null if no documents were found
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocumentList getById(Collection<String> ids) throws SolrServerException, IOException
Retrieves the SolrDocuments associated with the given identifiers.If a document was not found, it will not be added to the SolrDocumentList.
- Parameters:
ids
- the ids- Returns:
- a SolrDocumentList, or null if no documents were found
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocumentList getById(String collection, Collection<String> ids, SolrParams params) throws SolrServerException, IOException
Retrieves the SolrDocuments associated with the given identifiers and uses the SolrParams to execute the request.If a document was not found, it will not be added to the SolrDocumentList.
- Parameters:
collection
- the Solr collection to queryids
- the idsparams
- additional parameters to add to the query- Returns:
- a SolrDocumentList, or null if no documents were found
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getById
public SolrDocumentList getById(Collection<String> ids, SolrParams params) throws SolrServerException, IOException
Retrieves the SolrDocuments associated with the given identifiers and uses the SolrParams to execute the request.If a document was not found, it will not be added to the SolrDocumentList.
- Parameters:
ids
- the idsparams
- additional parameters to add to the query- Returns:
- a SolrDocumentList, or null if no documents were found
- Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
request
public abstract NamedList<Object> request(SolrRequest<?> request, String collection) throws SolrServerException, IOException
Execute a request against a Solr server for a given collection- Parameters:
request
- the request to executecollection
- the collection to execute the request against- Returns:
- a
NamedList
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
request
public final NamedList<Object> request(SolrRequest<?> request) throws SolrServerException, IOException
Execute a request against a Solr server- Parameters:
request
- the request to execute- Returns:
- a
NamedList
containing the response from the server - Throws:
IOException
- If there is a low-level I/O error.SolrServerException
- if there is an error on the server
-
getBinder
public DocumentObjectBinder getBinder()
Get theDocumentObjectBinder
for this client.- Returns:
- a DocumentObjectBinder
- See Also:
addBean(java.lang.String, java.lang.Object)
,addBeans(java.lang.String, java.util.Collection<?>)
-
getContext
public SolrRequest.SolrClientContext getContext()
This method defines the context in which this Solr client is being used (e.g. for internal communication between Solr nodes or as an external client). The default value isSolrClientContext#Client
-
-