【问题标题】:Expanded Tree Cache Full Exception while executing XQuery on a huge number of documents在大量文档上执行 XQuery 时扩展的树缓存完全异常
【发布时间】:2019-05-29 18:03:53
【问题描述】:

我正在尝试从多个文档中检索 XPath 的值。就我而言,大约有 80 万份文件。我得到和异常调用

扩展树缓存已满。

当文档较少(即 400k 文档)时,相同的查询会产生预期的输出。

以下是用于从集合中检索 XPath 值的查询:collection1collection2

cts:search(doc(),
  cts:and-query((
    cts:collection-query("collection1"), 
    cts:collection-query("collection2")
  ))
)/xpath/text()

【问题讨论】:

  • 请不要在这里使用印度语。人们不会知道什么是“十万份文件”
  • 您还可以为您的元素添加索引,并进行元素值查询而不是 Xpathing 所有文档。
  • 您能否详细说明为什么要提高这些价值观?您在寻找价值列表吗?或者您是否需要处理/更新这些文件?

标签: xquery marklogic


【解决方案1】:

您从查询返回的每个文档都必须全部加载到内存中 - 即扩展的树缓存。因此,单个查询受到它可以放入内存的文档数量的限制。

对于需要读取整个数据库或大型子集的查询,您应该实施分页或批处理以防止错误。如果您尝试从数据库中导出文档,MLCP 将自动为您进行批处理。

【讨论】:

    【解决方案2】:

    请看看这里的答案是否对你有帮助:https://help.marklogic.com/Knowledgebase/Article/View/9/16/resolving-xdmp-expntreecachefull-errors

    当查询需要实际检索元素、值或以其他方式遍历这些片段之一的内容时,片段会被解压缩并缓存在扩展的树缓存中。

    因此,请尝试重写查询以检索较少数量的文档。如果您有足够的内存,增加扩展的树缓存大小也可能对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多