在Solr 5.5中(以嵌入模式启动)我创建了一些文档,提交它们然后我试图回滚我的最后一次提交。以下是我在我的代码中调用的内容:
UpdateHandler updateHandler = core.getUpdateHandler()
... // some docs
UpdateHandler#addDoc
UpdateHandler#commit
检查索引 - 一切正常,索引包含所有文档。
但是当我打电话给UpdateHandler#rollback
并检查索引时 - 没有任何改变......
有什么问题?我应该在回滚后提交吗?
答案 0 :(得分:1)
Solr提交不起作用。提交将挂起文档写入索引。自上次提交以来,回滚会丢弃挂起文档,而不是提交它们。回滚不会撤消上次提交。
一旦你提交,你就说“这就是它,我们走吧”,Solr更新索引并使新文档可搜索。
据我所知,这也是提交和回滚在大多数RDBMS中的工作原理。
答案 1 :(得分:0)
至少在可行的情况下,您可以以编程方式删除上次提交。因此,如果您刚刚插入了唯一 ID 为 1234567 的文档,则删除具有该 ID 的文档。不是一个很好的解决方案,但我在寻找更好的方法时遇到了问题。如果你找到我的朋友,请告诉我