# SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Defragments the index

### Description

public SolrClient::optimize ([ int `$maxSegments` = 1 [, bool `$softCommit` = `TRUE` [, bool `$waitSearcher` = `TRUE` ]]] ) : SolrUpdateResponse

Defragments the index for faster search performance.

### Parameters

`maxSegments`

  Optimizes down to at most this number of segments. Since Solr 1.3

`softCommit`

  This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

`waitSearcher`

  Block until a new searcher is opened and registered as the main query searcher, making the changes visible.

### Return Values

Returns a SolrUpdateResponse on success or throws an exception on failure.

### Errors/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

### Notes

Warning

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Prior to PECL Solr 2.0 this method used to accept these arguments "int $maxSegments, bool $waitFlush, bool $waitSearcher".

### See Also

- SolrClient::commit() - Finalizes all add/deletes made to the index
- SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit