marklogic - 将控制台上的 uris 输出保存到文件系统
问题描述
如何将 qconsole 的结果保存到输出文件。output.txt 将在下面的每一行中包含名称 uri。我有超过一千份文件。
Caltech.xml
CGU.xml
GMU.xml
Hopkins.xml
Georgetown.xml
....
let $uris:= cts:uris(
(),
(),
cts:and-query(( cts:collection-query("/Universities/")))
)
let $quote:=
for $u in $uris
return
fn:substring-after($u,"/Universities/")
let $output:=
text {
fn:concat(
fn:string-join(($quote),","),
"
"
)
}
return xdmp:save(fn:concat("/09122018/output.txt") ,$output)
解决方案
不要字符串连接和连接来创建一个大字符串。取而代之的是,将多个字符串作为文本节点提交,包裹在您传入的文档节点中xdmp:save
。您可以通过这种方式轻松处理数百万份文档(前提是您愿意等待一分钟)。另请参阅:https ://stackoverflow.com/a/52005868/918496
如果您需要超出此范围,请按照 Rob 的建议查看Corb2。
!
推荐阅读
- c# - 如何动态构建 Func<>?
- mysql - 优化 MySQL CREATE TABLE 查询
- python - 有没有一种简单的方法可以以树的形式打印一个类的层次结构?
- oracle - 在行触发器中取消插入值
- mule - Mule 4:如果使用属性,则 Cloudhub 部署失败
- javascript - 未捕获的类型错误:item.getData 不是函数
- jacoco - 如何排除 jacoco:structure 中的某些类
- mongoose - UpdateOne 返回一个猫鼬对象而不是文档
- python-3.x - 为 seaborn 热图创建自定义 cmap
- python-3.x - TensorFlow 对象检测 API - GitHub