SolrClient::commit()
(PECL solr >= 0.9.2)
Finalizes all add/deletes made to the index
说明
public SolrClient::commit([bool $softCommit=FALSE
[,bool $waitSearcher=TRUE
[,bool $expungeDeletes=FALSE
]]]): SolrUpdateResponse
This method finalizes all add/deletes made to the index.
参数
- $softCommit
This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees.(Solr4.0+)
A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard commit will be lost. Search collections that have near-real-time requirements(that want index changes to be quickly visible to searches)will want to soft commit often but hard commit less frequently.
- $waitSearcher
block until a new searcher is opened and registered as the main query searcher, making the changes visible.
- $expungeDeletes
Merge segments with deletes away.(Solr1.4+)
返回值
Returns a SolrUpdateResponse object on success or throws an exception on failure.
错误/异常
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.
更新日志
版本 | 说明 |
---|---|
1.1.0, 2.0.0 | $maxSegments removed |
2.0.0b | API Changed: SolrClient::commit([ int $maxSegments = 0[, bool $softCommit = false[, bool $waitSearcher = true[, bool $expungeDeletes = false ]]]) |
0.9.2 | Signature: SolrClient::commit([ int $maxSegments = 1[, bool $waitFlush = true[, bool $waitSearcher = true ]]]).$waitFlush: Block until index changes are flushed to disk. |
注释
WarningPECL Solr >= 2.0 only supports Solr Server >= 4.0
参见
- SolrClient::optimize() Defragments the index
- SolrClient::rollback() Rollbacks all add/deletes made to the index since the last commit
Go easy on your use of commit - use the <autocommit /> section solrconfig.xml instead. Also consider using optimize() once a day if you are doing lots of adds/removes.