首页 > 解决方案 > 在大量文档上执行 XQuery 时扩展的树缓存完全异常

问题描述

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

扩展树缓存已满。

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

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

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

标签: xquerymarklogic

解决方案


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

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


推荐阅读