для следующего кода я получаю полный кэш расширенного дерева:
xquery version "1.0-ml";
let $result :=
<root>{
cts:search(
fn:collection("metadata-search")/metadata,
cts:and-query((
cts:element-value-query(xs:QName('AssetID'), "*")
))
)/assetIdentifiers/assetIdentifier/AssetID
}</root>
let $path := "D:\Output\input.xml"
return
xdmp:save($path, $result,
<options xmlns="xdmp:save">
<method>xml</method>
</options>
)
но если тот же код, который я запускал в режиме итерации, он работал нормально:
xquery version "1.0-ml";
let $result :=
<root>{
for $data in cts:search(
fn:collection("metadata-search")/metadata,
cts:and-query((
cts:element-value-query(xs:QName('AssetID'), "*")
))
)
return $data/assetIdentifiers/assetIdentifier/AssetID
}</root>
let $path := "D:\Output\input.xml"
return
xdmp:save($path, $result,
<options xmlns="xdmp:save">
<method>xml</method>
</options>
)
В базе данных 450000 ресурсов, и для ее запуска потребовалось 10 минут, мне было интересно, почему другая конструкция кода работает нормально, а не первая? Любая идея, пожалуйста, дайте мне знать подробно с контекстом этого кода?