【问题标题】:How to abort some but not all ingest flows in MarkLogic Data Hub Framework如何中止 MarkLogic 数据中心框架中的部分但不是全部摄取流
【发布时间】:2018-07-11 14:41:59
【问题描述】:

我们正在使用 MarkLogic 数据中心框架,并通过 REST 多文档写入文档端点将文档摄取到单时态数据库中。

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

我们已经编写了一些代码来检测重复(使用散列),但是,我们不知道如何在处理同一请求中的非重复文档时中止重复文档的提取。也就是说,当一个请求同时包含非重复文件和重复文件时,我们如何防止只写入非重复文件。数据中心框架没有任何插件来修改文档编写(因为这是由 REST api 控制的)。我们试图在内容插件中抛出fn:error(),但不幸的是,这会中止整个多文档写入,而不仅仅是那些导致错误的文档的写入。

【问题讨论】:

    标签: marklogic marklogic-dhf


    【解决方案1】:

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

    【讨论】:

    • 是的,我们已经尝试过了,但它不起作用。如果您在数据中心框架中将文档转换为空序列,文档 API 仍会写入一个空文档。
    【解决方案2】:

    我们最终与 MarkLogic 解决方案架构师讨论了这个问题,结论是默认的 v1/documents api 无法做到这一点。

    我们为解决这个问题所做的就是编写我们自己的自定义 api 作为 v1/resources 的一部分。此 api 仅调用数据中心框架代码,然后如果文档不重复,则将其写入。

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多