我有以下表达式:
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)