сохранить вывод Uris на консоли в файловую систему - PullRequest
0 голосов
/ 12 сентября 2018

Как сохранить результат из 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) 

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Не объединяйте строки и не объединяйте, чтобы создать одну большую строку.Вместо этого передайте несколько строк как текстовые узлы, завернутые в узел документа, который вы передаете в xdmp:save.Таким образом, вы можете легко обработать пару миллионов документов (если вы готовы подождать минуту).См. Также: https://stackoverflow.com/a/52005868/918496

Если вам нужно выйти за рамки этого, посмотрите на Corb2 , как это предложил Роб.

HTH!

0 голосов
/ 12 сентября 2018

Вы можете использовать xdmp: save для записи файла в файловую систему, которую использует MarkLogic Server.

Для наборов данных, слишком больших для обработки QConsole, я рекомендую вам взглянуть на Corb .

...