我正在使用 MarkLogic 来查询相对较大的 xml 数据集。现在我正在使用两组这样的查询:
xdmp:estimate(cts:search(fn:doc(), cts:and-query(($query, $text-query, $sent-query))))
xdmp:estimate(cts:search(fn:doc(), cts:and-not-query(cts:and-query(($query, $text-query)), $sent-query)))
其中, $text-query := cts:word-query("coke")
$sent-query := cts:and-query((cts:element-range-query(xs:QName("score_id"),">=",$lowValue), cts:element-range-query(xs:QName ("score_id"),"<",$hiValue)))
$query := cts:word-query("健怡可乐")
$lowValue := 13264683002210000000;
$hiValue := 13264683002211000000;
对于这两个集合(查询号 1 和 2),我得到了一些计数,但是当我删除xdmp:estimate
部分时,cts:search()
查询1.正在返回 xmls,其中查询号。2,我得到一个空序列。
我的问题是,如果cts:search
没有返回任何 xml,那么如何xdmp:estimate
计算查询号的节点。2 ??
是cts:and-not-query
不是不舒服cts:element-range-query
,虽然???
注意我得到了一些计数,xdmp:estimate
没有任何错误。范围索引是在字段“ score_id ”上创建的。