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

时间:2014-08-25 11:14:40

标签: marklogic

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

1 个答案:

答案 0 :(得分:6)

xdmp:planxdmp:plannable看起来像普通函数,但它们并不是真的,因为它们不查看参数的值,它们将它们看作表达式,只有某些表达式可以由这些职能审查。实际上,xdmp:plan / plannable可以检查的唯一表达式是cts:search和XPath表达式。

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

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