# The SolrClient class

(PECL solr >= 0.9.2)

## Introduction

Used to send requests to a Solr server. Currently, cloning and serialization of SolrClient instances is not supported.

## Class synopsis

final SolrClient {
/* Constants */
const integer SEARCH_SERVLET_TYPE = 1 ;
const integer UPDATE_SERVLET_TYPE = 2 ;
const integer THREADS_SERVLET_TYPE = 4 ;
const integer PING_SERVLET_TYPE = 8 ;
const integer TERMS_SERVLET_TYPE = 16 ;
const integer SYSTEM_SERVLET_TYPE = 32 ;
const string DEFAULT_SEARCH_SERVLET = select ;
const string DEFAULT_UPDATE_SERVLET = update ;
const string DEFAULT_THREADS_SERVLET = admin/threads ;
const string DEFAULT_PING_SERVLET = admin/ping ;
const string DEFAULT_TERMS_SERVLET = terms ;
const string DEFAULT_SYSTEM_SERVLET = admin/system ;
/* Methods */
public addDocument ( SolrInputDocument `$doc` [, bool `$overwrite` = `TRUE` [, int `$commitWithin` = 0 ]] ) : SolrUpdateResponse
public addDocuments ( array `$docs` [, bool `$overwrite` = `TRUE` [, int `$commitWithin` = 0 ]] ) : void
public commit ([ bool `$softCommit` = `FALSE` [, bool `$waitSearcher` = `TRUE` [, bool `$expungeDeletes` = `FALSE` ]]] ) : SolrUpdateResponse
public __construct ( array `$clientOptions` )
public deleteById ( string `$id` ) : SolrUpdateResponse
public deleteByIds ( array `$ids` ) : SolrUpdateResponse
public deleteByQueries ( array `$queries` ) : SolrUpdateResponse
public deleteByQuery ( string `$query` ) : SolrUpdateResponse
public __destruct ( void ) : void
public getById ( string `$id` ) : SolrQueryResponse
public getByIds ( array `$ids` ) : SolrQueryResponse
public getDebug ( void ) : string
public getOptions ( void ) : array
public optimize ([ int `$maxSegments` = 1 [, bool `$softCommit` = `TRUE` [, bool `$waitSearcher` = `TRUE` ]]] ) : SolrUpdateResponse
public ping ( void ) : SolrPingResponse
public query ( SolrParams `$query` ) : SolrQueryResponse
public request ( string `$raw_request` ) : SolrUpdateResponse
public rollback ( void ) : SolrUpdateResponse
public setResponseWriter ( string `$responseWriter` ) : void
public setServlet ( int `$type` , string `$value` ) : bool
public system ( void ) : void
public threads ( void ) : void
}

## Predefined Constants

`SolrClient::SEARCH_SERVLET_TYPE`

  Used when updating the search servlet.

`SolrClient::UPDATE_SERVLET_TYPE`

  Used when updating the update servlet.

`SolrClient::THREADS_SERVLET_TYPE`

  Used when updating the threads servlet.

`SolrClient::PING_SERVLET_TYPE`

  Used when updating the ping servlet.

`SolrClient::TERMS_SERVLET_TYPE`

  Used when updating the terms servlet.

`SolrClient::SYSTEM_SERVLET_TYPE`

  Used when retrieving system information from the system servlet.

`SolrClient::DEFAULT_SEARCH_SERVLET`

  This is the initial value for the search servlet.

`SolrClient::DEFAULT_UPDATE_SERVLET`

  This is the initial value for the update servlet.

`SolrClient::DEFAULT_THREADS_SERVLET`

  This is the initial value for the threads servlet.

`SolrClient::DEFAULT_PING_SERVLET`

  This is the initial value for the ping servlet.

`SolrClient::DEFAULT_TERMS_SERVLET`

  This is the initial value for the terms servlet used for the TermsComponent

`SolrClient::DEFAULT_SYSTEM_SERVLET`

  This is the initial value for the system servlet used to obtain Solr Server information

## Table of Contents

- SolrClient::addDocument — Adds a document to the index
- SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
- SolrClient::commit — Finalizes all add/deletes made to the index
- SolrClient::__construct — Constructor for the SolrClient object
- SolrClient::deleteById — Delete by Id
- SolrClient::deleteByIds — Deletes by Ids
- SolrClient::deleteByQueries — Removes all documents matching any of the queries
- SolrClient::deleteByQuery — Deletes all documents matching the given query
- SolrClient::__destruct — Destructor for SolrClient
- SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
- SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
- SolrClient::getDebug — Returns the debug data for the last connection attempt
- SolrClient::getOptions — Returns the client options set internally
- SolrClient::optimize — Defragments the index
- SolrClient::ping — Checks if Solr server is still up
- SolrClient::query — Sends a query to the server
- SolrClient::request — Sends a raw update request
- SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
- SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
- SolrClient::setServlet — Changes the specified servlet type to a new value
- SolrClient::system — Retrieve Solr Server information
- SolrClient::threads — Checks the threads status