【问题标题】:Bulk Patching of documents in Marklogic database using java client api使用 java 客户端 api 批量修补 Marklogic 数据库中的文档
【发布时间】:2017-09-27 05:38:18
【问题描述】:

我有几个 json 文档,如下所示:-

{ 状态:TO_BE_REPORTED, 日期:2017/11/11 …… }

我想通过仅将状态字段值从 TO_BE_REPORTED 替换为 REPORTED 来更新或修补文档,并且我想进行批量更新,因为我有成千上万的文档。我正在使用 DocumentPatchBuilder,但它不支持批量更新。

另一方面,我可以看到 Marklogic 几乎没有使用 docManager.newWriteSet 进行批量写入然后向其中添加文档但它不支持文档修补的概念?

还有其他可以尝试的吗?

【问题讨论】:

    标签: java marklogic marklogic-9


    【解决方案1】:

    我建议阅读Data Movement SDK。它应该包含关于如何进行各种更新的各种代码sn-ps。

    HTH!

    【讨论】:

    • 正确,ApplyTransformListener 将允许 QueryBatcher 对与迭代器提供的查询或 uri 匹配的所有文档应用服务器端转换。您可以轻松地创建一个 PatchListener,在 QueryBatcher 提供的每个 uri 上应用补丁。正如您所注意到的,它需要更长的时间才能运行,因为没有批量调用。但是代码不应该太难编写和维护。并且 QueryBatcher 将在多个线程中处理文档,因此它的运行速度将比等效的 for 循环快得多。
    【解决方案2】:

    CoRB2 是一个社区构建的工具,旨在进行批量更新。您提供标识要更新哪些文档的 URI 模块和指定要进行哪些更改的处理模块。这些模块可以用 XQuery 或 JavaScript 编写(我相信这是正确的;它一直支持 XQuery,而且我认为他们前段时间添加了 JS)。它不使用 Java Client API,但应该可以满足您的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多