为什么像Marks中的cts:search()/ Xpath这样的表达式不可规划?

cal*_*low 1 marklogic

使用xdmp:plan可以查看cts的计划:search()和可搜索的Xpath.但为什么像这样的表达 cts:search()/Xpath不可规划?另外,我会问同样的问题cts:uri-match().

小智 6

xdmp:planxdmp:plannable看起来像正常功能,但他们是不是真的,因为他们不看它们的参数值呢,他们看他们的表情,只有某些表达式可以通过这些功能来检查.实际上,xdmp:plan/plannable只能检查is cts:search和XPath表达式.

如果xdmp:plannable说特定cts:search的XPath表达式不可计划,那是因为执行它会引发错误或因为path参数cts:search不是可搜索的表达式.

为什么路径表达式无法搜索?通常,这意味着它以变量开头,并不将整个数据库作为上下文.cts:search它本身就是一种特殊的形式,因为它不仅仅评估第一个参数,然后将查询应用于该集合(如果确实如此,它将对大型数据库非常缓慢;如果您想要这种功能,请使用cts:contains).相反,它检查路径表达式并将其合并到查询中.你会在计划中看到这一点.