我有一个部分solrconfig.xml
启用 Solr 的自动提交功能:
<autoCommit>
<maxDocs>20000</maxDocs>
<maxTime>3600000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
但是,在执行大量删除操作时,我注意到自动提交不会触发提交。
这是可以预料的吗?如果是这样,有没有办法配置删除的自动提交?
我有一个部分solrconfig.xml
启用 Solr 的自动提交功能:
<autoCommit>
<maxDocs>20000</maxDocs>
<maxTime>3600000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
但是,在执行大量删除操作时,我注意到自动提交不会触发提交。
这是可以预料的吗?如果是这样,有没有办法配置删除的自动提交?
Kai Chan 部分正确。这个说法:
setting openSearcher to false might make committed changes not visible right away.
应该改为
setting openSearcher to false will make auto-committed changes not visible right away.
<openSearcher>false</openSearcher>
如果您要进行批量添加,可以帮助您。在完全导入期间,您将首先发出“全部删除”,然后开始添加文档。您很可能不想在自动提交发生后立即打开新的搜索器,因为您的可搜索索引可能只是部分的。添加所有文档以打开新搜索器后,您必须自己发出显式提交命令。你可以/update?commit=true
用来做这个。
这个说法:
But after 20000 documents, there is no commit.
也不是真的。有一个提交,但 Solr 没有打开新的搜索器,这意味着您的更改将在搜索中不可见。一旦您发出显式提交,更改就会变得可见。