代码之家  ›  专栏  ›  技术社区  ›  thichxai

将控制台上的URI输出保存到文件系统

  •  1
  • thichxai  · 技术社区  · 6 年前

     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) 
    
    2 回复  |  直到 6 年前
        1
  •  4
  •   Mads Hansen    6 年前

    不要串连接和concat来创建一个大字符串。相反,将多个字符串作为文本节点交出来,并封装在传递到的文档节点中 xdmp:save . 您可以通过这种方式轻松地处理数百万个文档(前提是您愿意等待一分钟)。另请参见: https://stackoverflow.com/a/52005868/918496

    如果你需要扩大规模,看看 Corb2 ,正如罗伯建议的那样。

        2
  •  3
  •   Rob S.    6 年前

    你可以用 xdmp:save 将文件写入MarkLogic服务器正在使用的文件系统。

    对于QConsole无法处理的数据集,我建议您 CORB .