【问题标题】:How atomic or partial update work?原子或部分更新如何工作?
【发布时间】:2016-01-06 21:41:43
【问题描述】:

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

【问题讨论】:

    标签: solr solrcloud


    【解决方案1】:

    从 solr 4 开始,Solr 允许更新部分文档。您可以更新字段的值或从多值字段中添加/删除值。

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

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

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

    【讨论】:

    • 有趣的是,我不知道所有其他字段都需要stored=true。你有一些进一步阅读的链接吗?
    • 必须存储所有字段的原因是因为该特征或多或少只是从索引中提取的文档,从请求中交换的值然后再次在内部提交给自身(所以所有字段都是再次处理)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    相关资源
    最近更新 更多