当添加一个存在完全相同字段和值的文档时,Solr(Lucene)在内部做了什么?

时间:2015-01-21 14:05:53

标签: solr lucene

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

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

这个问题与我试图优化索引过程的用例有关。大量文档会添加到新索引中,但过程可能会中断。我想知道是否浪费了更多时间,通过手动计算哪些文档已成功编入索引,或者重新执行整个索引过程。在一个理想的世界中,我将重新启动索引过程并依赖Solr来检查添加的文档是否已经在索引中。

我无法想出任何比仅重新索引任何添加的文档更有效的逻辑,但也许某些Solr / Lucene开发人员可以。

1 个答案:

答案 0 :(得分:0)

如果ID已存在,即使所有字段都相同,它也会覆盖所有内容。 版本会更改该ID。