AsyncSolrClient

io.ino.solrs.AsyncSolrClient
See theAsyncSolrClient companion object
class AsyncSolrClient[F[_]]

Async, non-blocking Solr Client that allows to make requests to Solr. The usage shall be similar to the solrj SolrClient, so request returns a future of a SolrResponse.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Value members

Concrete methods

def addBean(collection: Option[String], obj: Any, commitWithinMs: Int): F[UpdateResponse]

Adds a single bean specifying max time before it becomes committed The bean is converted to a SolrInputDocument by the client's DocumentObjectBinder

Adds a single bean specifying max time before it becomes committed The bean is converted to a SolrInputDocument by the client's DocumentObjectBinder

Attributes

collection

to Solr collection to add documents to

obj

the input bean

Returns:

an UpdateResponse from the server

def addBeans(collection: Option[String], beans: Iterable[_], commitWithinMs: Int): F[UpdateResponse]

Adds a collection of beans specifying max time before they become committed The beans are converted to SolrInputDocuments by the client's DocumentObjectBinder

Adds a collection of beans specifying max time before they become committed The beans are converted to SolrInputDocuments by the client's DocumentObjectBinder

Attributes

beans

the collection of beans

collection

the Solr collection to add documents to

commitWithinMs

max time (in ms) before a commit will happen

Returns:

an UpdateResponse from the server

def addBeans(collection: String, beanIterator: Iterator[_]): F[UpdateResponse]

Adds the beans supplied by the given iterator.

Adds the beans supplied by the given iterator.

Attributes

beanIterator

the iterator which returns Beans

collection

the Solr collection to add the documents to

Returns:

an UpdateResponse from the server

def addBeans(beanIterator: Iterator[_]): F[UpdateResponse]

Adds the beans supplied by the given iterator.

Adds the beans supplied by the given iterator.

Attributes

beanIterator

the iterator which returns Beans

Returns:

an UpdateResponse from the server

def addDoc(collection: Option[String], doc: SolrInputDocument, commitWithinMs: Int): F[UpdateResponse]

Adds a single document specifying max time before it becomes committed

Adds a single document specifying max time before it becomes committed

Attributes

collection

the Solr collection to add the document to

commitWithinMs

max time (in ms) before a commit will happen

doc

the input document

Returns:

an UpdateResponse from the server

def addDocs(collection: Option[String], docs: Iterable[SolrInputDocument], commitWithinMs: Int): F[UpdateResponse]

Adds a collection of documents, specifying max time before they become committed

Adds a collection of documents, specifying max time before they become committed

Attributes

collection

the Solr collection to add documents to

commitWithinMs

max time (in ms) before a commit will happen

docs

the collection of documents

Returns:

an UpdateResponse from the server

def addDocs(collection: String, docIterator: Iterator[SolrInputDocument]): F[UpdateResponse]

Adds the documents supplied by the given iterator.

Adds the documents supplied by the given iterator.

Attributes

collection

the Solr collection to add documents to

docIterator

the iterator which returns SolrInputDocument instances

Returns:

an UpdateResponse from the server

def addDocs(docIterator: Iterator[SolrInputDocument]): F[UpdateResponse]

Adds the documents supplied by the given iterator.

Adds the documents supplied by the given iterator.

Attributes

docIterator

the iterator which returns SolrInputDocument instances

Returns:

an UpdateResponse from the server

def commit(collection: Option[String], waitFlush: Boolean, waitSearcher: Boolean, softCommit: Boolean): F[UpdateResponse]

Performs an explicit commit, causing pending documents to be committed for indexing

Performs an explicit commit, causing pending documents to be committed for indexing

Attributes

collection

the Solr collection to send the commit to

softCommit

makes index changes visible while neither fsync-ing index files nor writing a new index descriptor

waitFlush

block until index changes are flushed to disk

waitSearcher

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

def deleteById(collection: Option[String], id: String, commitWithinMs: Int): F[UpdateResponse]

Deletes a single document by unique ID, specifying max time before commit

Deletes a single document by unique ID, specifying max time before commit

Attributes

collection

the Solr collection to delete the document from

commitWithinMs

max time (in ms) before a commit will happen

id

the ID of the document to delete

Returns:

an UpdateResponse containing the response from the server

def deleteByIds(collection: Option[String], ids: Seq[String], commitWithinMs: Int): F[UpdateResponse]

Deletes a list of documents by unique ID, specifying max time before commit

Deletes a list of documents by unique ID, specifying max time before commit

Attributes

collection

the Solr collection to delete the documents from

commitWithinMs

max time (in ms) before a commit will happen

ids

the list of document IDs to delete

Returns:

an UpdateResponse containing the response from the server

def deleteByQuery(collection: Option[String], query: String, commitWithinMs: Int): F[UpdateResponse]

Deletes documents from the index based on a query, specifying max time before commit

Deletes documents from the index based on a query, specifying max time before commit

Attributes

collection

the Solr collection to delete the documents from

commitWithinMs

max time (in ms) before a commit will happen

query

the query expressing what documents to delete

Returns:

an UpdateResponse containing the response from the server

def execute[T <: SolrResponse : SolrResponseFactory](r: SolrRequest[_ <: T]): F[T]

Performs a request to a solr server.

Performs a request to a solr server.

Attributes

r

the request to send to solr.

def executePreferred[T <: SolrResponse : SolrResponseFactory](r: SolrRequest[_ <: T], preferred: Option[SolrServer]): F[(T, SolrServer)]

Performs a request to a solr server taking the preferred server into account if provided.

Performs a request to a solr server taking the preferred server into account if provided.

Attributes

preferred

the server that should be preferred to process the request. Specific LoadBalancer implementations have to support this and might add their own semantics.

r

the request to send to the solr server.

Returns:

the response and the server that handled the request.

def getById(collection: Option[String], id: String, params: Option[SolrParams]): F[Option[SolrDocument]]

Retrieves the SolrDocument associated with the given identifier and uses the SolrParams to execute the request.

Retrieves the SolrDocument associated with the given identifier and uses the SolrParams to execute the request.

Attributes

collection

the Solr collection to query

id

the id

params

additional parameters to add to the query

Returns:

retrieved SolrDocument, or None if no document is found.

def getByIds(collection: Option[String], ids: Iterable[String], params: Option[SolrParams]): F[SolrDocumentList]

Retrieves the SolrDocuments associated with the given identifiers and uses the SolrParams to execute the request.

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.

Attributes

collection

the Solr collection to query

ids

the ids

params

additional parameters to add to the query

Returns:

a SolrDocumentList

def optimize(collection: Option[String], waitFlush: Boolean, waitSearcher: Boolean, maxSegments: Int): F[UpdateResponse]

Performs an explicit optimize, causing a merge of all segments to one. Note: In most cases it is not required to do explicit optimize

Performs an explicit optimize, causing a merge of all segments to one. Note: In most cases it is not required to do explicit optimize

Attributes

collection

the Solr collection to send the optimize to

maxSegments

optimizes down to at most this number of segments

waitFlush

block until index changes are flushed to disk

waitSearcher

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

def ping(): F[SolrPingResponse]

Issues a ping request to check if the server is alive

Issues a ping request to check if the server is alive

Attributes

Returns:

a { @link org.apache.solr.client.solrj.response.SolrPingResponse} containing the response from the server

def query(q: SolrParams): F[QueryResponse]

Performs a query to the Solr server

Performs a query to the Solr server

Attributes

q

an object holding all key/value parameters to send along the request

Returns:

a { @link org.apache.solr.client.solrj.response.QueryResponse} containing the response from the server

def query(q: SolrParams, method: METHOD): F[QueryResponse]

Performs a query to the Solr server

Performs a query to the Solr server

Attributes

method

specifies the HTTP method to use for the request, such as GET or POST

q

an object holding all key/value parameters to send along the request

Returns:

a { @link org.apache.solr.client.solrj.response.QueryResponse} containing the response from the server

def query(collection: String, q: SolrParams, method: METHOD): F[QueryResponse]

Performs a query to the Solr server

Performs a query to the Solr server

Attributes

collection

the Solr collection to query

method

specifies the HTTP method to use for the request, such as GET or POST

q

an object holding all key/value parameters to send along the request

Returns:

a { @link org.apache.solr.client.solrj.response.QueryResponse} containing the response from the server

def queryAndStreamResponse(collection: Option[String], q: SolrParams, callback: StreamingResponseCallback): F[QueryResponse]

Query solr, and stream the results. Unlike the standard query, this will send events for each Document rather then add them to the QueryResponse.

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.

Attributes

callback

the callback to stream results to

collection

the Solr collection to query

q

an object holding all key/value parameters to send along the request

Returns:

a { @link org.apache.solr.client.solrj.response.QueryResponse} containing the response from the server

def queryPreferred(q: SolrQuery, preferred: Option[SolrServer]): F[(QueryResponse, SolrServer)]

Performs a query to a solr server taking the preferred server into account if provided.

Performs a query to a solr server taking the preferred server into account if provided.

Attributes

preferred

the server that should be preferred to process the query. Specific LoadBalancer implementations have to support this and might add their own semantics.

q

the query to send to the solr server.

Returns:

the response and the server that handled the query.

def rollback(collection: Option[String]): F[UpdateResponse]

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.

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.

Attributes

collection

the Solr collection to send the rollback to

Returns:

an UpdateResponse containing the response from the server

def shutdown(): Unit

Closes the http client (asynchronously) if it was not provided but created by this class.

Closes the http client (asynchronously) if it was not provided but created by this class.

Attributes