原子或部分更新如何工作?

How atomic or partial update work?

Solr 提供部分更新文档的功能,它允许在字段级别而不是文档级别进行更新。
solr 是否在内部获取整个文档并对其进行完整的重新索引? 如果有人可以解释部分更新在内部是如何工作的,那就太好了?

从solr 4开始,solr允许更新部分文档。您可以更新一个或多个字段的值或来自多值字段的 add/remove 个值。

在 solr 中使用部分更新或原子更新的最佳做法是,将架构中的所有索引字段定义为 stored=true。当文档发生部分更新时,Solr 在内部从先前存储的文档中获取其他字段的值以重建文档。然后它将以前的文档标记为已删除并索引具有更高版本的新文档。

优点是,如果要从索引中更新特定的小字段,则无需再次发送大文档。

使用部分更新功能的缺点可能是索引较大。因为以前,您可能只想索引某些字段而不存储它们。这将节省存储这些字段的 space。现在,所有索引字段都应在架构中标记为 stored=true。这将增加 solr 上索引的大小。