Here are some queries that are similar to the code I was talking about. 

XPath (0.04 secs)
xquery version '1.0-ml';
let $key := "mykey"
let $lang-code := "spa"

return
fn:collection()/resource-bundle/resource
    [@key = $key]
    [fn:lang($lang-code)]


cts (0.015 sec)
xquery version '1.0-ml';
let $key := "mykey"
let $lang-code := "spa"

return
cts:search(fn:collection()/resource-bundle/resource, 
cts:element-attribute-value-query(xs:QName("resource"), xs:QName("key"), $key, 
"exact"))
    [fn:lang($lang-code)]

The expression that takes the most time in the XPath version is "@key = $key". 
What I'm curious about is just what cts does so differently that the XPath 
engine doesn't, because I am noticing quite a disparity between them given the 
same data and same queries effectively (which is ok, I don't have an XPath 
problem, just wondering why the difference).

-Ryan


> From: kelly.stir...@marklogic.com
> To: general@developer.marklogic.com
> Date: Thu, 12 May 2011 08:59:13 -0700
> Subject: [MarkLogic Dev General] Why is cts:search so much faster than XPath?
> 
> Equivalent XPath and cts:search expressions should perform the same. Can you 
> share an example, and what version you are using?
> 
> If they are equivalent and there is a performance difference, then there may 
> be a bug.
> 
> Kelly
> 
> Message: 5
> Date: Thu, 12 May 2011 09:05:16 -0600
> From: "seme...@hotmail.com" <seme...@hotmail.com>
> Subject: [MarkLogic Dev General] Why is cts:search so much faster than
>       XPath?
> To: <general@developer.marklogic.com>
> Message-ID: <snt121-w423bd38403eb7f1aded8d5b7...@phx.gbl>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> 
> I wrote awhile ago that I thought it was usually best to use search:search 
> for full text searching, cts:search for node selection out of the db, and 
> XPath for node selection within a document. I just ran into a situation that 
> doing the same query for nodes in the DB using cts:search was 6 times faster 
> than using XPath. 
> 
> So what is it about cts:search that makes it so fast? I assume that there are 
> optimizations under the covers, but how is cts:search able to gain from the 
> optimizations but XPath is not? Just curious.
> 
> -Ryan
> _______________________________________________
> General mailing list
> General@developer.marklogic.com
> http://developer.marklogic.com/mailman/listinfo/general
                                          
_______________________________________________
General mailing list
General@developer.marklogic.com
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to