сохранить вывод uris на консоли в файловую систему

63
6

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

спросил(а) 2021-01-25T15:42:38+03:00 4 месяца, 3 недели назад
1
Решение
99

Не используйте string-join и concat для создания одной большой строки. Вместо этого передайте несколько строк в виде текстовых узлов, завернутых в узел документа, который вы передадите в xdmp:save. Вы можете легко обрабатывать несколько миллионов документов таким образом (при условии, что вы готовы подождать минуту). См. Также: qaru.site/questions/16225686/...

Если вам нужно масштабироваться дальше, посмотрите на Corb2, как это предложил Роб.

НТН!

ответил(а) 2021-01-25T15:42:38+03:00 4 месяца, 3 недели назад
88

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


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

ответил(а) 2021-01-25T15:42:38+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема