我试图在xquery中返回关键字的计数,但是它正在发送corb作业中每个节点的计数。有人可以帮忙
以下是我在corb作业上使用的查询
URIS模块
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`
答案 0 :(得分:1)
按从URIs模块返回的顺序为每个URI调用处理模块。每次调用流程模块时,都会为该执行设置$URI
变量的值。
处理模块未在执行过程中使用$URI
变量。它正在执行相同的静态估计查询,将该值分配给名为$ URI的类似名称的变量,然后为每次执行返回相同的结果。
如果要计算每个文档中单词的出现次数,则应使用$URI
来加载文档:fn:doc($URI)
,然后计算有多少meta:source
个元素字。
处理模块使用的是“ Cirrus”,但URIs查询正在搜索“ CIRRUS”,但不清楚$ COLLATION是什么。假设您需要不区分大小写的评估,则只需lower-case()
值并测试与“ cirrus”的相等性即可。
declare namespace meta = "whatever your namespace is"
declare variable $URI as xs:string external;
count(fn:doc($URI)//meta:source[lower-case(.) = "cirrus"])