如何中止MarkLogic Data Hub Framework中的部分但不是全部接收流

时间:2018-07-11 14:42:00

标签: marklogic marklogic-dhf

我们正在使用MarkLogic Data Hub Framework,并通过REST多文档写入文档端点将文档导入到单位时间数据库中。

现在,有时我们会通过这种不变的文件方式收到文件更新。显然,在那种情况下,我们不想在MarkLogic中添加这些文档,因为单位时间特性会导致时间戳错误和不必要的存储空间。

我们已经编写了一些代码来检测重复项(使用散列),但是,我们不知道在处理同一请求中的非重复文档时如何中止重复文档的提取。也就是说,当一个包含非重复和重复文档的单个请求时,如何防止只写非重复文档。 Data Hub Framework没有任何插件可以修改文档编写(因为这由REST API控制)。我们试图在内容插件中插入fn:error(),但是很遗憾,该操作会中止整个多文档写入,而不是中止导致错误的那些文档的写入。

2 个答案:

答案 0 :(得分:0)

我在黑暗中拍摄一些东西,但没有看到您的代码,但我想您可以在检测到重复的情况下返回空序列,而不是fn:errorxdmp:document-insert应该很好。

答案 1 :(得分:0)

我们最终与MarkLogic解决方案架构师进行了讨论,得出的结论是,使用默认的v1 / documents api是不可能的。

解决此问题的方法是编写自己的自定义api作为v1 / resources的一部分。此api只会调用数据中心框架代码,然后在不重复的情况下编写文档。