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



我有以下表达式:

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()没有什么可搜索的。

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

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

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

这段代码正在做两件事:

  • 执行搜索以获取一系列文档
  • 将 XPath 应用于文档序列以从文档中提取节点

换句话说,XPath不是搜索的一部分。 它将后处理应用于搜索结果。

xdmp:estimate()xdmp:plan()都只接受搜索的输入,不接受搜索结果的后处理。

希望澄清,

如果ts:title元素上有元素范围索引,则可以使用cts:element-values()通过应用$q1查询来检索标题,这将是一个索引解析操作。

例如:

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

相关内容

  • 没有找到相关文章

最新更新