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)