【发布时间】:2018-06-26 07:15:56
【问题描述】:
我想将 Solr 原子更新与一些存储的 copyField 目标字段结合使用,这不是推荐的组合 - 所以我希望了解风险。
Solr documentation for Atomic Updates 说(我的重点):
以原子方式更新文档的核心功能要求 架构中的所有字段都必须配置为已存储(stored="true") 或 docValues (docValues="true") 除了字段
<copyField/>目的地,必须配置为 stored="false"。 原子更新应用于现有的文档所代表的 存储的字段值。 copyField 目标字段中的所有数据必须 仅来自 copyField 来源。
但是,我有一些 copyField 目标,我想设置 stored=true 以便突出显示对它们正常工作(例如,参见 this question)。
我需要原子更新,以便(不相关的)字段可以被另一个进程修改,而不会丢失由我的进程索引的数据。
文档警告说:
如果目标配置为已存储,则 Solr 将 尝试索引字段的当前值以及 来自任何源字段的附加副本。如果这些字段包含一些 来自索引程序的信息和一些信息 来自copyField,然后是原来来的信息 进行原子更新时,索引程序中的数据将丢失。
但这意味着什么?有人可以举一个例子来说明这个信息丢失问题吗?
具体而言,我不确定“来自索引程序的一些信息和来自 copyField 的一些信息”是什么意思。
存储一个copyField 目标是否安全,同时以原子方式更新其他 字段,反之亦然?我已通过 Solr 管理控制台进行了尝试,但无法证明任何问题,但想弄清楚什么情况会引发问题。
【问题讨论】:
标签: solr