我需要MarkLogic,XQuery和corb的帮助,
数据库中有数以百万计的文档,我试图编写XQuery以保存匹配的uris。
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)
save-job.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/version/item/Papkov.xml.version-24处的无效参数类型
有人能帮我解决这个问题吗?
发布于 2021-06-10 09:32:52
使用PROCESS-TASK
选项配置作业,以使用com.marklogic.developer.corb.ExportBatchToFileTask
类,该类将将每个流程模块调用的结果写入一个输出文件。您可以使用EXPORT-FILE-NAME
和EXPORT-FILE-DIR
选项来配置写入文件和文件名的位置。如果不配置导出文件-DIR,只需给它一个带有导出文件名的文件名,它就会相对于启动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写入文件,而不进行转换或处理,则可以使用ModuleExecutor类并让它将cts:uri匹配的结果直接写入输出文件。
https://stackoverflow.com/questions/67925007
复制