MarkLogic:理解可搜索和不可搜索的查询?

MarkLogic:理解可搜索和不可搜索的查询?,marklogic,query-tuning,Marklogic,Query Tuning,我有以下的表达: let $q1 := cts:element-range-query(xs:QName("ts:week"), ">=" ,xs:date("2009-04-25")) return cts:search(fn:doc(), $q1, "unfiltered") 我做了一个xdmp:plan,并且知道正在使用范围索引,并且表达式是可搜索的 但是,当我添加XPath时: let $q1 := cts:element-range-query(xs:QName("ts:wee

我有以下的表达:

let $q1 := cts:element-range-query(xs:QName("ts:week"), ">=" ,xs:date("2009-04-25"))
return cts:search(fn:doc(), $q1, "unfiltered")
我做了一个xdmp:plan,并且知道正在使用范围索引,并且表达式是可搜索的

但是,当我添加XPath时:

let $q1 := cts:element-range-query(xs:QName("ts:week"), ">=" ,xs:date("2009-04-25"))
return cts:search(fn:doc(), $q1, "unfiltered")/ts:top-song/ts:title/text()
在执行xdmp:plan时,它告诉我路径是不可搜索的。在查询跟踪中,它进一步表示除了fn:doc之外,没有什么可搜索的

但是,因为我得到了正确的结果。我的猜测是索引工作得很好

如果是这样的话,什么是记录消息不可搜索


在这种情况下,我特别需要title元素,我能做些什么使整个表达式可以搜索吗?

这段代码做了两件事:

执行搜索以获取文档序列 对文档序列应用XPath以从文档中提取节点 换句话说,XPath不是搜索的一部分。它对搜索结果进行后处理

xdmp:estimate和xdmp:plan都只接受搜索的输入,而不接受对搜索结果的后处理


希望能澄清这一点,

这段代码做了两件事:

执行搜索以获取文档序列 对文档序列应用XPath以从文档中提取节点 换句话说,XPath不是搜索的一部分。它对搜索结果进行后处理

xdmp:estimate和xdmp:plan都只接受搜索的输入,而不接受对搜索结果的后处理


希望澄清一下,

如果ts:title元素上有一个元素范围索引,您可以通过应用$q1查询来检索标题,这将是一个索引解析操作

例如:

cts:element-values(xs:QName("ts:title"), "", (), $q1)

如果ts:title元素上有一个元素范围索引,那么可以使用通过应用$q1查询来检索标题,这将是一个索引解析操作

例如:

cts:element-values(xs:QName("ts:title"), "", (), $q1)