Xpath和cts之间执行计划的差异:在Marklogic中搜索

时间:2014-08-25 06:27:51

标签: marklogic query-performance

在Xpath上运行xdmp:plan(),在执行计划中我发现了以下内容: <qry:info-trace>Selected n fragments</qry:info-trace> 但是在xdmp:plan()上运行cts:search(/Xpath,cts:and-query(())),我得到了   <qry:info-trace>Selected n fragments to filter</qry:info-trace>

为什么在第二种情况下“过滤”缺失?

1 个答案:

答案 0 :(得分:2)

使用7.0-3和cts:search

xdmp:plan(cts:search(/a/b/c, cts:and-query(())))
=>
...
<qry:info-trace>Selected N fragments to filter</qry:info-trace>
...

而XPath:

xdmp:plan(/a/b/c)
=>
...
<qry:info-trace>Selected N fragments</qry:info-trace>
....

差异主要是审美。 cts:search函数接受unfiltered选项,而XPath没有这样的选项:XPath结果总是被过滤。该计划仅在未经过滤的搜索时提及过滤,过滤已启用。

xdmp:plan(cts:search(/a/b/c, cts:and-query(()), 'unfiltered'))
=>
...
<qry:info-trace>Selected N fragments</qry:info-trace>
....

请参阅https://docs.marklogic.com/guide/performance/unfiltered,了解默认情况下启用过滤的原因,以及在某些情况下您可能希望禁用过滤的原因。