SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit将所有添加到索引中的添加/删除操作最终确定

说明

public SolrClient::commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse

此方法将所有添加到索引中的添加/删除操作最终确定。

参数

softCommit

这将以更高效的方式刷新索引的“视图”,但没有“磁盘”保证。(Solr 4.0+)

软提交速度快得多,因为它只使索引更改可见,而不会对索引文件进行 fsync 或写入新的索引描述符。如果 JVM 崩溃或断电,上次硬提交后发生的更改将丢失。具有近乎实时需求(希望索引更改快速对搜索可见)的搜索集合将希望经常进行软提交,但较少进行硬提交。

waitSearcher

阻塞,直到新的搜索器打开并注册为主要的查询搜索器,从而使更改可见。

expungeDeletes

将包含删除操作的段合并在一起。(Solr 1.4+)

返回值

如果成功,则返回一个 SolrUpdateResponse 对象,否则抛出异常。

错误/异常

如果客户端失败或存在连接问题,则抛出 SolrClientException

如果 Solr 服务器无法处理请求,则抛出 SolrServerException

变更日志

版本 说明
PECL solr 1.1.0, 2.0.0 $maxSegments 已移除
PECL solr 2.0.0b API 已更改:SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
PECL solr 0.9.2 签名:SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: 阻塞,直到索引更改刷新到磁盘。

注释

警告

PECL Solr >= 2.0 只支持 Solr Server >= 4.0

参见

添加注释

用户贡献的注释 1 个注释

jason at jasonplayne dot com
11 年前
尽量少使用 commit - 而是使用 <autocommit /> 部分 solrconfig.xml。

如果您要进行大量添加/删除操作,请考虑每天使用 optimize() 一次。
To Top