【发布时间】:2018-10-26 15:39:08
【问题描述】:
我们正在运行 SOLR 7.2.1。
我们通过 DataImportHanlder(clear=true)定期更新我们的索引(完全重新索引)。
大多数时候,我们索引中的正常文档数量(通常约为 250,000)在 DIH 运行时仍然可见(因为它直到导入结束才提交)。
然而,我们偶尔会遇到一个问题,即索引会突然只显示文档的一小部分(例如,可能有 20,000 个)。
我无法追查其来源,但我确实怀疑原因:如果有人修改了我们网站管理区域中的产品,这将触发该文档的 SOLR 更新(带有提交)。这个提交是否有可能通过一个单独的进程导致部分完成的 DIH 数据也被提交?如果是这样,那就可以解释为什么我们有时会在索引中得到更小的文档子集。 DIH 完成后,文档计数恢复正常。
那么,重叠的提交会相互影响吗?换句话说,提交是“全局”的,还是只影响当前进程中正在更改的数据?
如果您对此作出任何澄清,我将不胜感激。
谢谢!
比尔
【问题讨论】:
-
注意:我想我可以回答我自己的问题,但我会等待比我更了解的人的验证。在我的测试环境中,在运行 DIH 时,如果我从另一个进程添加另一个文档(commit=true),那么我确实看到索引已更新,并且当时 DIH 已完成处理的当前文档数现在是什么在索引中公开可用。那么,下一个问题是,SOLR 能否在 DIH 运行时阻止外部进程向 SOLR 提交更新?我怀疑不是,除了改变其他 procs,但值得一问。