【发布时间】:2019-06-18 14:20:35
【问题描述】:
我想使用 XQuery 从 MarkLogic 查询控制台搜索 MarkLogic 数据库中最大的 XML 文件。我可以使用以下 XQuery 检索数据库中文档的大小(字节):
xdmp:binary-size(xdmp:unquote(xdmp:quote($doc),(),"format-binary")/binary())
$doc 是我获取字节大小的文档。
【问题讨论】:
-
除非您在插入时计算此值并将其包含在文档元数据中,否则它不是“可搜索的”,即:您最终会将整个数据库加载到内存中以在查询时计算文件大小,并且可能会溢出缓存。
-
@wst 如果我的数据集非常少怎么办?资源管理器选项在查询控制台中如何工作?资源管理器速度太快,无法获取所有文档。
-
QConsole 浏览器能够从索引中获取大部分数据,未排序,并且是分页的,因此它一次不会读取超过 50 个文档.对于非常小的文档集(取决于文档的大小),您可以为 XQuery FLWOR 中的每个文档调用
xdmp:binary-size,并调用order by的值descending。
标签: xml max size xquery marklogic