【发布时间】:2016-01-06 21:41:43
【问题描述】:
Solr 提供部分更新文档的功能,它允许在字段级别而不是文档级别进行更新。
solr 是否在内部获取整个文档并对其进行完全重新索引?
如果有人能解释部分更新在内部是如何工作的,那就太好了?
【问题讨论】:
Solr 提供部分更新文档的功能,它允许在字段级别而不是文档级别进行更新。
solr 是否在内部获取整个文档并对其进行完全重新索引?
如果有人能解释部分更新在内部是如何工作的,那就太好了?
【问题讨论】:
从 solr 4 开始,Solr 允许更新部分文档。您可以更新字段的值或从多值字段中添加/删除值。
在 solr 中使用部分更新或原子更新的最佳做法是,将架构中的所有索引字段定义为 stored=true。当文档发生部分更新时,Solr 在内部从先前存储的文档中获取其他字段的值以重建文档。然后它会将之前的文档标记为已删除,并为更高版本的新文档建立索引。
优点是,如果您想从索引中更新特定的小字段,则无需再次发送大文档。
使用部分更新功能的缺点可能是索引更大。因为以前,您可能只想索引某些字段而不存储它们。这将节省存储这些字段的空间。现在所有索引字段都应在架构中标记为stored=true。这将增加 solr 上索引的大小。
【讨论】:
stored=true。你有一些进一步阅读的链接吗?