2017-07-20 24 views
1

考虑以下XPath表达式:MarkLogic:Xpath的VS搜索

/book/metadata/title[. = "Good Will Hunting"] 

而下面的搜索表达式:

cts:search(/book/metadata, cts:element-value-query(xs:QName("title"), "Good Will Hunting"), "unfiltered") 

的Xpath会利用关系索引和值索引。 搜索是否同时使用术语列表索引和价值索引?上述哪个查询更高效且可扩展?

+0

一般来说,在数据库技术中以这种通用的方式询问什么是更有效的往往是更多的猜测工作。某些东西的效率也将很大程度上取决于您拥有的数据量,数据结构,硬件以及许多可能的优化。因此,为了获得真正相关的数字,为什么不简单地在数据集上尝试? – dirkk

回答

3

我会建议看看xdmp:plan每个这些。这将向您显示,根据您的特定索引设置,我们正在向索引发送什么问题。除了cts:search缺少第一个参数外,这些通常会具有相当的可比性。我假设它会是/book/metadata,这样你也可以在搜索中找到这些限制。一个关键的区别是XPath总是被过滤掉。 OTOH的主要成本是将所有碎片从磁盘上取下来,所以如果你正在做这件事,那么消费结果不会有什么大的变化,除非有很多误报,或者你只消耗顶部N结果。

+0

感谢您指出cts:search中的故障,我做了更改。 – Yash