添加具有完全相同字段和值的文档时,Solr (Lucene) 在内部做什么?

What does Solr (Lucene) do internally when adding a document which exists with exactly the same fields and values?

根据我对 Solr 更新过程的了解,它删除并新添加了一个文档以执行 "update"。这通常适用于添加与现有文档具有相同 ID 的文档,但其他 fields/values 可能不同。

我的问题是:Solr 是否有一个聪明的内部机制来检测何时再次添加完全相同的文档,即添加的文档具有与现有文档相同的 ID 和具有相同值的相同字段?

这个问题与我尝试优化索引过程的用例有关。将大量文档添加到新索引中,但过程可能会在两者之间中断。我想知道我是否会浪费更多时间来或多或少地手动确定哪些文档已经成功编入索引,或者重新执行整个索引过程。在理想情况下,我会重新启动索引过程并依靠 Solr 检查添加的文档是否已在索引中。

我想不出任何看起来比重新索引任何添加的文档更有效的逻辑,但也许一些 Solr/Lucene 开发人员可以。

如果 ID 已经存在,即使所有字段都相同,它也会覆盖所有内容。 该 ID 的 版本 发生变化。