【发布时间】:2021-06-10 16:21:11
【问题描述】:
我需要一些有关 MarkLogic、XQuery 和 corb 的帮助,
我在数据库中有数百万个文档,我正在尝试编写 XQuery 来保存匹配的 uri。
urisVersions.xqy
xquery version "1.0-ml";
let $uris := cts:uri-match("*versions/*version-*")
return (fn:count($uris), $uris)
urisSave.xqy
xquery version "1.0-ml";
declare variable $URI as xs:string external;
let $uri := $URI
return xdmp:save("/tmp/test",$uri)
保存作业.properties
XCC-CONNECTION-URI= xcc://user:admin@localhost:8000/
URIS-MODULE=urisVersions.xqy|ADHOC
XQUERY-MODULE=urisSave.xqy|ADHOC
THREAD-COUNT=10
出现以下错误 严重:致命错误 com.marklogic.developer.corb.CorbException:URI 处的参数类型无效:/12312/versions/item/papkov.xml.version-24
谁能帮我解决这个问题?
【问题讨论】:
-
那个错误是因为
xdmp:save()的第二个参数需要是一个节点。您正在提供带有 URI 的字符串。您可以保存text()节点:xdmp:save("/tmp/test", text{$uri})但是,进程模块的每次调用都会争取覆盖该“/tmp/test”文件 - 不好。您想使用将流程模块的输出写入文件的 CoRB 任务。