Solr提供部分更新文档的功能,它允许在字段级别而不是在文档级别进行更新 solr是否在内部获取整个文档并完全重新索引它? 如果有人可以解释内部部分更新是如何工作的话会很棒吗?
答案 0 :(得分:4)
从solr 4开始,Solr允许更新部分文档。您可以更新字段的值或从多值字段中添加/删除值。
在solr中使用部分更新或原子更新时的最佳做法是,将架构中的所有索引字段定义为stored=true
。当对文档进行部分更新时,Solr在内部从先前存储的文档中提取其他字段的值以重建文档。然后,它将先前的文档标记为已删除,并使用更高版本索引新文档。
优点是,如果要从索引更新特定的小字段,则无需再次发送大型文档。
使用部分更新功能的缺点可能是索引的更大尺寸。因为以前,您可能只想索引某些字段而不存储它们。这将节省存储这些字段的空间。现在,所有索引字段都应在架构中标记为stored=true
。这将增加solr上索引的大小。