我正在尝试在 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"])