如何在Marklogic中保存与corb模式匹配的URI列表?
我需要一些关于MarkLogic、XQuery和corb的帮助 数据库中有数百万个文档,我正试图编写XQuery来保存匹配的URI urisVersions.xqy如何在Marklogic中保存与corb模式匹配的URI列表?,marklogic,marklogic-corb,Marklogic,Marklogic Corb,我需要一些关于MarkLogic、XQuery和corb的帮助 数据库中有数百万个文档,我正试图编写XQuery来保存匹配的URI urisVersions.xqy xquery version "1.0-ml"; let $uris := cts:uri-match("*versions/*version-*") return (fn:count($uris), $uris) urisave.xqy xquery version "1.0-
xquery version "1.0-ml";
let $uris := cts:uri-match("*versions/*version-*")
return (fn:count($uris), $uris)
urisave.xqy
xquery version "1.0-ml";
declare variable $URI as xs:string external;
let $uri := $URI
return xdmp:save("/tmp/test",$uri)
保存作业属性
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
有人能帮我解决这个问题吗?使用
com.marklogic.developer.corb.ExportBatchToFileTask
类配置作业,该类将每个流程模块调用的结果写入输出文件。您可以使用和选项配置文件写入位置和文件名。如果不配置EXPORT-FILE-DIR,只给它一个带有EXPORT-FILE-NAME的文件名,它将从启动CoRB的位置写入相对位置
PROCESS-TASK=com.marklogic.developer.corb.ExportBatchToFileTask
EXPORT-FILE-NAME=versionsURIs.txt
将流程模块更改为只返回$URI值:
xquery version "1.0-ml";
declare variable $URI as xs:string external;
$URI
如果您只想将uri写入一个文件,而不进行转换或任何处理,那么可以使用该类并让它将cts:uri匹配的结果直接写入输出文件。该错误是因为
xdmp:save()
的第二个参数需要是一个节点。您正在提供一个带有URI的字符串。您可以保存一个text()
节点:xdmp:save(“/tmp/test”,text{$uri})
,但是,流程模块的每次调用都会试图覆盖该“/tmp/test”文件-不太好。您希望使用将流程模块的输出写入文件的CoRB任务。谢谢,@Mads Hansen