You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MarkLogic CoRB任务报错:SEVERE: received more than 1 results: 1求助

问题:MarkLogic CoRB任务报错“received more than 1 results: 1”失败

运行MarkLogic CoRB任务预期返回100条记录,但任务因报错SEVERE: received more than 1 results: 1失败,相关脚本及异常信息如下:

URIs生成脚本(uris.xqy)

declare namespace lab = "http://labs.com/record";
declare namespace meta="http://labs.com/lab/record/meta";
let $org := ("Ros* Lab*")
for $uri in cts:uris(
                     (),
                     (),
               cts:and-query((
                  cts:collection-query('/Lab'),
                  cts:field-range-query("updated","<","2023-08-18"),
                  cts:or-query((
                      cts:field-word-query("do",$org,"case-insensitive"),
                ))
            ))
        )
 return (count($uri),$uri)

处理脚本(uris-process.xqy)

xquery version "1.0-ml";
declare namespace lab = "http://labs.com/record";
declare namespace meta="http://labs.com/lab/record/meta";
declare variable $URI as xs:string external;
xdmp:set-request-time-limit(3600),

for $uris in $URI
let $doc := fn:doc($uris)
let $meta := <lab:Record><meta:Metadata>

                 $doc//meta:IDNumber}
                 {$doc//meta:ReportDate}
                 {$doc//meta:ReportNumbers}
             </meta:Metadata></lab:Record>

 let $IDNumber := fn:data($meta//meta:IDNumber)

return
xdmp:save(fn:concat("/XML/",$IDNumber,".xml")$IDNumber ,$meta)

任务异常信息

SEVERE: interrupted: exiting
java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2088)
        at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
        at java.util.concurrent.ExecutorCompletionService.poll(ExecutorCompletionService.java:202)
        at com.marklogic.developer.corb.Monitor.monitorResults(Monitor.java:97)
        at com.marklogic.developer.corb.Monitor.run(Monitor.java:76)
        at java.lang.Thread.run(Thread.java:750)

Sep 11, 2023 3:32:41 PM com.marklogic.developer.corb.Manager run
SEVERE: received more than 1 results: 1
Sep 11, 2023 3:32:41 PM com.marklogic.developer.corb.Manager stop
INFO: cleaning up
Sep 11, 2023 3:32:41 PM com.marklogic.developer.corb.Manager main
SEVERE: Error while running CORB
java.lang.ArrayIndexOutOfBoundsException: received more than 1 results: 1

错误原因及修复方案

1. URIs脚本(uris.xqy)的核心问题

CoRB的URIS模块要求每行输出一个URI,但当前脚本返回(count($uri), $uri)——对每个URI会返回两个结果:count($uri)(单个字符串的count值为1)和URI本身。CoRB会将这两个结果视为独立的URI条目,触发解析错误。

修复后的uris.xqy:

declare namespace lab = "http://labs.com/record";
declare namespace meta="http://labs.com/lab/record/meta";
let $org := ("Ros* Lab*")
for $uri in cts:uris(
                     (),
                     (),
               cts:and-query((
                  cts:collection-query('/Lab'),
                  cts:field-range-query("updated","<","2023-08-18"),
                  cts:or-query((
                      cts:field-word-query("do",$org,"case-insensitive")
                ))
            ))
        )
 return $uri
  • 移除多余的count($uri),直接返回URI即可。

2. 处理脚本(uris-process.xqy)的语法错误

脚本存在多处语法问题,会导致执行失败:

  • $doc//meta:IDNumber} 多了一个闭合大括号}
  • xdmp:save(fn:concat("/XML/",$IDNumber,".xml")$IDNumber ,$meta) 参数错误:fn:concat后冗余了$IDNumber,正确参数应为保存路径和内容
  • 冗余的for $uris in $URI:$URI是单个字符串,无需循环遍历

修复后的uris-process.xqy:

xquery version "1.0-ml";
declare namespace lab = "http://labs.com/record";
declare namespace meta="http://labs.com/lab/record/meta";
declare variable $URI as xs:string external;

xdmp:set-request-time-limit(3600),
let $doc := fn:doc($URI)
let $meta := <lab:Record><meta:Metadata>
                 {$doc//meta:IDNumber}
                 {$doc//meta:ReportDate}
                 {$doc//meta:ReportNumbers}
             </meta:Metadata></lab:Record>
let $IDNumber := fn:data($meta//meta:IDNumber)
return
xdmp:save(fn:concat("/XML/", $IDNumber, ".xml"), $meta)

内容的提问来源于stack exchange,提问作者thichxai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:00:13