MarkLogic:DHF协调流程,用于在STAGING DB中为每个文档将多个文档写入FINAL数据库

问题描述 投票:1回答:1

MarkLogic版本:9.0-6.2

我正在使用MLCP将文档提取到STAGING DB中。对于STAGING DB中的每个文档,我需要更新FINAL DB中的多个文档。

例如,登台数据库文档包含带有退回指示符的电子邮件。我需要在FINAL中具有相同电子邮件ID的集合中的所有文档中更新退回指标。

我可以使用Harmonize flow来做到这一点吗?如何在content.sjs中编码以多次调用writer.sjs?

我试图在writer.sjs中使用循环来返回FINAL中的每个文档并应用documentInsert(基本上是writer.sjs中的FOR循环),但行为不一致。另外,我不确定这是否是Harmonize流程的正确用法。

我尝试编写自定义代码并通过REST API调用进行调用。这是按预期工作的。

请建议处理我的要求的最佳方法(Harmonize Vs Custom REST)。

marklogic marklogic-9 marklogic-dhf
1个回答
1
投票

有一种相当优雅的方法,但它不适用于QuickStart UI。您可以使用Final作为源数据库运行协调流,并使用cts:values作为收集器源。

您运行输入并协调流程而没有副作用,一旦完成,您将启动一个单独的协调流程,以查找最终数据库中的所有唯一电子邮件地址。您将每个唯一的电子邮件地址作为id传递(通常包含文档uri,但任何其他字符串也可以)。您可以在各个步骤中收集所需的所有内容,然后在编写器中查询并循环所有相关文档以根据需要设置指示器。

运行流的gradle任务具有sourceDB属性,但您也可以使用Data Hub REST-api执行相同的操作:https://marklogic.github.io/marklogic-data-hub/refs/gradle-tasks/#marklogic-data-hub-flow-management-tasks

HTH!

© www.soinside.com 2019 - 2024. All rights reserved.