首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何用corb保存Marklogic中匹配模式的URI列表?

如何用corb保存Marklogic中匹配模式的URI列表?
EN

Stack Overflow用户
提问于 2021-06-10 16:21:11
回答 1查看 62关注 0票数 1

我需要MarkLogic,XQuery和corb的帮助,

数据库中有数以百万计的文档,我试图编写XQuery以保存匹配的uris。

urisVersions.xqy

代码语言:javascript
代码运行次数:0
运行
复制
xquery version "1.0-ml";
let $uris := cts:uri-match("*versions/*version-*")

return (fn:count($uris), $uris)

urisSave.xqy

代码语言:javascript
代码运行次数:0
运行
复制
xquery version "1.0-ml";
declare variable $URI as xs:string external;

let $uri := $URI 
return xdmp:save("/tmp/test",$uri)

save-job.properties

代码语言:javascript
代码运行次数:0
运行
复制
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处的无效参数类型

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 17:32:52

使用PROCESS-TASK选项配置作业,以使用com.marklogic.developer.corb.ExportBatchToFileTask类,该类将将每个流程模块调用的结果写入一个输出文件。您可以使用EXPORT-FILE-NAMEEXPORT-FILE-DIR选项来配置写入文件和文件名的位置。如果不配置导出文件-DIR,只需给它一个带有导出文件名的文件名,它就会相对于启动CoRB的位置写入文件名。

代码语言:javascript
代码运行次数:0
运行
复制
PROCESS-TASK=com.marklogic.developer.corb.ExportBatchToFileTask
EXPORT-FILE-NAME=versionsURIs.txt

更改流程模块,只返回$URI值:

代码语言:javascript
代码运行次数:0
运行
复制
xquery version "1.0-ml";
declare variable $URI as xs:string external;
$URI

如果您只想将uri写入文件,而不进行转换或处理,则可以使用ModuleExecutor类并让它将cts:uri匹配的结果直接写入输出文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67925007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档