【问题标题】:How to embed custom code in MarkLogic Data Hub Framework?如何在 MarkLogic 数据中心框架中嵌入自定义代码?
【发布时间】:2018-07-12 06:53:05
【问题描述】:
我创建了一个实体并创建了输入和协调流程。我可以看到生成的 XQuery 文件。
现在我有一个要求,我需要对我的原始数据做一些(if-else),并根据我需要将一些数据推送到我的最终数据库的条件,并且一些数据将保留在 STAGING 本身中(即不应该进入决赛)。
我对需要更改代码的文件(main.xqy、headers.xqy 等)感到困惑,所以如果我运行 Harmonize Flow,那么整个事情应该可以一次性完成。
【问题讨论】:
标签:
xquery
marklogic
marklogic-dhf
【解决方案1】:
MarkLogic 操作数据中心框架中的每个协调流插件都旨在进行定制。有五个插件,collector.xqy、content.xqy、header.xqy、triples.xqy 和 writer.xqy。最简单的协调如下:
- 确定暂存数据库中的哪些文档需要在收集器插件中处理
- 在内容插件中转换步骤 1. 中的文档(添加 if/else 逻辑)
- 使用编写器插件将第 2 步中的协调文档写入最终数据库。
以下是来自ODH Wiki 的每个插件的摘要:
收藏家
选择暂存数据库中要处理的文档的 ID。
内容
将输入数据转换为规范化或规范格式,以存储在最终文档中。您可以在此处添加自定义转换代码。
标题
标题插件负责从内容中提取标题项。您可以在此处的标题部分添加元数据或扩充内容。
三元组
三元组插件负责从源内容中提取语义三元组。您可以控制信封文档中嵌入的三元组。
作家
编写器插件负责将最终信封写入数据库。您可以使用此模块控制协调文档的输出权限、URI、集合等。