我有solrconfig.xml
的一部分,它启用了Solr的自动提交功能:
<autoCommit>
<maxDocs>20000</maxDocs>
<maxTime>3600000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
但是,在执行大量删除操作时,我注意到自动提交不会触发提交。
这是预期的吗?如果是这样,有没有办法为删除配置自动提交?
答案 0 :(得分:2)
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没有打开一个新的搜索器,这意味着您的更改将不会在搜索中显示。只要您发出显式提交,更改就会变为可见。