0
使用未经过滤的搜索
考虑下面的查询:在MarkLogic
xquery version "1.0-ml";
declare namespace ts = "http://marklogic.com/MLU/top-songs";
let $range_query := cts:element-range-query(xs:QName("ts:week"), ">=", xs:date("2009-05-01"))
let $query := cts:search(fn:doc(), $range_query)
return $query/ts:top-song/ts:title/text()
(不:一周范围指数已启用)
我相信,上面的查询可以给仅基于索引的结果和用这个假设我做了如下修改:
let $query := cts:search(fn:doc(), $range_query, "unfiltered")
我得到了同样的结果。
然而,
fn:count($query/ts:top-song/ts:title/text()) gave a result of 8
和
xdmp:estimate($query/ts:top-song/ts:title/text())
给了一个错误:表达式是无法测度
我相信这意味着查询不能使用索引进行搜索。如果是这样,为什么未经过滤的方法工作得很好?
我想你的意思是xdmp:估计($ query)应该给我答案。然而,它仍然给出了错误:表达式是不可测量的 – Yash
@Yash,不,我不是故意复制'let'。变量引用是不可测量的。我更新了答案。 – wst