x查询返回每个节点的计数.我宁愿希望这些作为循环的总计数



我正在尝试在 xquery 中返回关键字的计数,但它正在发送 corb 作业中每个节点的计数。有人可以帮忙吗

以下是我在 corb 作业上使用的查询

尿样模块

let $d1 := xs:date("2019-01-10")
let $t1 := xs:time("17:15:00")
let $d2 := xs:date("2019-01-16")
let $t2 := xs:time("22:39:00")
let $uris:= cts:uris((),(),
  cts:and-query((
    cts:element-range-query(xs:QName("meta:source"), "=", "CIRRUS", $CODEPOINT),
    cts:element-range-query(xs:QName("meta:modifiedDateTime"), ">=", 
    fn:dateTime($d1, $t1)),
    cts:element-range-query(xs:QName("meta:modifiedDateTime"), "<=", fn:dateTime($d2, $t2))
  ))
)
return (fn:count($uris), $uris)`

流程模块

declare variable $URI as xs:string external;
let $URI := xdmp:estimate(cts:search(fn:doc(), cts:word-query("Cirrus")))
return $URI`

为从 URIs 模块返回的序列中的每个 URI 调用进程模块。每次调用流程模块时,它都会为该执行设置$URI变量的值。

流程模块未使用 $URI 变量作为执行的一部分。它执行相同的静态估计查询,将该值分配给名为 $URI 的类似名称的变量,然后为每次执行返回相同的结果。

如果要计算每个文档中单词的出现次数,则应使用$URI加载文档:fn:doc($URI),然后计算有多少meta:source元素具有该单词。

流程模块使用"Cirrus",但 URI 查询正在搜索"CIRRUS",但不清楚$COLLATION是什么。假设你想要一个不区分大小写的评估,你可以lower-case()值并测试与"卷云"的相等性。

declare namespace meta = "whatever your namespace is"
declare variable $URI as xs:string external;
count(fn:doc($URI)//meta:source[lower-case(.) = "cirrus"])

相关内容

最新更新