使用java客户端api批量修补Marklogic数据库中的文档
我有几个json文档,如下所示:- { 状态:待报告, 日期:2017/11/11 .... } 我只想通过将状态字段值从“to_BE_REPORTED to REPORTED”替换为“to_BE_REPORTED to REPORTED”来更新或修补文档,并且我想进行批量更新,因为我有数千个文档。我正在使用DocumentPatchBuilder,但它不支持批量更新 另一方面,我可以看到Marklogic很少有使用docManager.newWriteSet进行批量写入然后向其中添加文档的概念,但它不支持文档修补使用java客户端api批量修补Marklogic数据库中的文档,java,marklogic,marklogic-9,Java,Marklogic,Marklogic 9,我有几个json文档,如下所示:- { 状态:待报告, 日期:2017/11/11 .... } 我只想通过将状态字段值从“to_BE_REPORTED to REPORTED”替换为“to_BE_REPORTED to REPORTED”来更新或修补文档,并且我想进行批量更新,因为我有数千个文档。我正在使用DocumentPatchBuilder,但它不支持批量更新 另一方面,我可以看到Marklogic很少有使用docManager.newWriteSet进行批量写入然后向其中添加文档的概念
还有什么我可以试试的吗?我建议大家在网上多读一些。它应该包含关于如何进行各种更新的各种代码片段
嗯 我建议大家在网上阅读。它应该包含关于如何进行各种更新的各种代码片段
嗯 是一个社区构建的工具,用于批量更新。您提供了一个URI模块,用于标识要更新的文档,以及一个处理模块,用于指定要进行的更改。这些模块可以用XQuery或JavaScript编写(我相信这是对的;它一直支持XQuery,我想他们不久前添加了JS)。它不使用Java客户端API,但应该满足您的需要 是一个社区构建的工具,用于批量更新。您提供了一个URI模块,用于标识要更新的文档,以及一个处理模块,用于指定要进行的更改。这些模块可以用XQuery或JavaScript编写(我相信这是对的;它一直支持XQuery,我想他们不久前添加了JS)。它不使用Java客户端API,但应该满足您的需要 正确,ApplyTransformListener将允许QueryBatcher对匹配迭代器提供的查询或URI的所有文档应用服务器端转换。您可以轻松地创建一个PatchListener,在QueryBatcher提供的每个uri上应用补丁。正如您所注意到的,由于没有批量调用,因此需要更长的时间才能运行。但是代码编写和维护应该不会太难。而且QueryBatcher将在多个线程中处理文档,因此它将比等效的for-loop运行得快得多。正确,ApplyTransferorMLister将允许QueryBatcher对与迭代器提供的查询或URI匹配的所有文档应用服务器端转换。您可以轻松地创建一个PatchListener,在QueryBatcher提供的每个uri上应用补丁。正如您所注意到的,由于没有批量调用,因此需要更长的时间才能运行。但是代码编写和维护应该不会太难。QueryBatcher将在多个线程中处理文档,因此它将比等效的for循环运行得快得多。