2017-07-20 80 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