使用xdmp:plan可以查看cts的计划:search()和可搜索的Xpath。但为什么像 cts:search()/Xpath
这样的表达式不可规划?
另外,我会问cts:uri-match()
的同一个问题。
答案 0 :(得分:6)
xdmp:plan
和xdmp:plannable
看起来像普通函数,但它们并不是真的,因为它们不查看参数的值,它们将它们看作表达式,只有某些表达式可以由这些职能审查。实际上,xdmp:plan / plannable可以检查的唯一表达式是cts:search
和XPath表达式。
如果xdmp:plannable
表示特定的cts:search
XPath表达式不可计划,那是因为执行它会引发错误或因为cts:search
的路径参数不可搜索表达。
为什么路径表达式无法搜索?通常,这意味着它以变量开头,并不将整个数据库作为上下文。 cts:search
本身就是一种特殊形式,因为它不仅仅评估第一个参数,然后将查询应用于该集合(如果确实如此,它将是
大型数据库非常慢;如果您想要这种功能,请使用cts:contains
)。相反,它检查路径表达式并将其合并到查询中。你会在计划中看到这一点。