[MarkLogic Dev General] Is fn:doc-available() high performance, or should we use something else like cts:uri-match()?

Michael Blakeley mike at blakeley.com
Thu Mar 1 13:30:47 PST 2012


It looks to me like doc-available($uri) is equivalent to xdmp:exists(doc($uri)) now. Either expression results in a simple list-cache lookup, with no tree fetches and no reliable difference in elapsed-time.

If you use a uri lexicon, probably something like exists(cts:uris($uri, 'limit=1')) will be faster than cts:uri-match($uri). But I think there might be cases where doc-available is cached and the lexicon lookup is not, so the lexicon lookup may not always be faster than doc-available.

-- Mike

On 1 Mar 2012, at 13:25 , Danny Sokolsky wrote:

> xdmp:exists(fn:doc("/my/uri.xml"))
>  
> will be fast.
>  
> The uri lexicon functions are also a good choice.
>  
> -Danny
>  
>  
>  
> From: general-bounces at developer.marklogic.com [mailto:general-bounces at developer.marklogic.com] On Behalf OfDavid Swearingen
> Sent: Thursday, March 01, 2012 1:15 PM
> To: general at developer.marklogic.com
> Subject: [MarkLogic Dev General] Is fn:doc-available() high performance, or should we use something else like cts:uri-match()?
>  
> We have a system with a million or so records.  When attempting to discern if a doc with a given uri is in the system, what's the fastest method?  Thanks.
> 
> 
> _______________________________________________
> General mailing list
> General at developer.marklogic.com
> http://developer.marklogic.com/mailman/listinfo/general



More information about the General mailing list