尽量少使用 commit - 而是使用 <autocommit /> 部分 solrconfig.xml。
如果您要进行大量添加/删除操作,请考虑每天使用 optimize() 一次。
(PECL solr >= 0.9.2)
SolrClient::commit — 将所有添加到索引中的添加/删除操作最终确定
$softCommit
= false
, bool $waitSearcher
= true
, bool $expungeDeletes
= false
): SolrUpdateResponse此方法将所有添加到索引中的添加/删除操作最终确定。
softCommit
这将以更高效的方式刷新索引的“视图”,但没有“磁盘”保证。(Solr 4.0+)
软提交速度快得多,因为它只使索引更改可见,而不会对索引文件进行 fsync 或写入新的索引描述符。如果 JVM 崩溃或断电,上次硬提交后发生的更改将丢失。具有近乎实时需求(希望索引更改快速对搜索可见)的搜索集合将希望经常进行软提交,但较少进行硬提交。
waitSearcher
阻塞,直到新的搜索器打开并注册为主要的查询搜索器,从而使更改可见。
expungeDeletes
将包含删除操作的段合并在一起。(Solr 1.4+)
如果成功,则返回一个 SolrUpdateResponse 对象,否则抛出异常。
版本 | 说明 |
---|---|
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
尽量少使用 commit - 而是使用 <autocommit /> 部分 solrconfig.xml。
如果您要进行大量添加/删除操作,请考虑每天使用 optimize() 一次。