【问题标题】:MarkLogic - Expanded tree cache error while inserting documentsMarkLogic - 插入文档时出现扩展树缓存错误
【发布时间】:2023-04-11 08:27:01
【问题描述】:

在我们的应用程序中,我们接收到需要预处理并加载到 MarkLogic 中的批量文件。

为此,我们需要:

  1. 将文件加载到临时 MarkLogic 工作目录中
  2. 预处理(XML 文件上的节点操作)
  3. 使用 xdmp:document-insert 将文档移动到其预期的目标 MarkLogic 目录

在执行 (3) 时,对于一批 1500 个文档(最多 400 个文档,它可以正常工作。任何更大的数字,都会弹出错误)。

我们代码的算法步骤:

    Get total number of docs in working directory = totalRec
    for Ctr = 1 to totalRec
        Get specific node values for current doc
        Frame the target URI where doc is to be loaded
        Insert document using xdmp:document-insert

我们甚至尝试在for loop 中使用事务begin/commits,但似乎没有任何效果。有关如何解决此问题的任何想法?

【问题讨论】:

  • 您在插入文档时尝试过 xdmp:eval() xdmp:document-insert() 吗?
  • 是的,纳文。那也没用。
  • 让我知道您的 MarkLogic 版本。如果我是对的:totalRec=1500, 1 到 totalRec=1 到 1500。你如何计算 ducments 的数量?和“获取当前文档的特定节点值”?
  • @Gatt 如果可以发布一些实际代码会更有用;伪代码仅在试图弄清楚发生了什么时使用有限。

标签: marklogic


【解决方案1】:

扩展树缓存错误仅表示您尝试一次处理太多片段。首选的解决方案是减小工作集的大小。通常不太好,如果你有足够的空闲内存你可以在组设置中增加扩展树缓存的大小。但通常最好减小工作集的大小。

这个特定的用例听起来像是一个内容处理工作流程。因此,您最好使用内置产品功能,即内容处理框架 (CPF):http://docs.marklogic.com/guide/cpf 有更多关于 CPF 的信息。

或者 InfoStudio 流程可能是合适的:http://docs.marklogic.com/guide/infostudio

使用现有工具意味着您不必重新发明轮子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 2018-01-19
    • 2017-03-31
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多