Hi, zisedeqing:

You might consider writing queries with cts:search() so you don't need to look 
into the interpretation of the FLWOR expression.

The following query should get close to what you want (though you may see some 
false positives if you run unfiltered without position indexes).

cts:search(collection('test'),
    cts:element-query(xs:QName("catalog"),
        cts:element-attribute-value-query(xs:QName("product"), 
xs:QName("dept"), "WMN")
        ))

As an alternative that runs unfiltered without false positives, you could 
create a path range index on /catalog/product@dept and execute a 
cts;path-range-query instead of the cts:element-query() above.  For more 
information, see:

    http://docs.marklogic.com/guide/admin/range_index#id_40666


Hoping that helps,


Erik Hennum

________________________________
From: general-boun...@developer.marklogic.com 
[general-boun...@developer.marklogic.com] on behalf of 张晓博 [zisedeq...@163.com]
Sent: Sunday, July 05, 2015 8:33 PM
To: general@developer.marklogic.com
Subject: Re: [MarkLogic Dev General] General Digest, Vol 133, Issue 16


Thanks Rob , I had got the query plan by used xdmp:query-trace(), but marklogic 
will really execute the xquery when i used xdmp:query-trace().

Is there another method that i can get the query plan and the query will be not 
really exeuted?



>Message: 2
>Date: Mon, 6 Jul 2015 02:43:12 +0000
>From: Rob Szkutak <rob.szku...@marklogic.com>
>Subject: Re: [MarkLogic Dev General] How can i get the query plan for
>       FWLOR   query statement?
>To: MarkLogic Developer Discussion <general@developer.marklogic.com>
>Message-ID:
>       <6e8e665d710d394a853b6eec145fb7dc11075...@exchg10-be02.marklogic.com>
>Content-Type: text/plain; charset="gb2312"
>
>Hi,
>
>xdmp:plan() requires a partially searchable XPath expression or a cts:search() 
>expression. It doesn't accept xQuery like that. More information: 
>https://docs.marklogic.com/xdmp:plan
>
>Here's an example that would work for you:
>
>xdmp:plan(collection('test')/catalog/product/@dept)
>
>Another alternative to check if your range index is being used do this:
>
>let $_ := xdmp:query-trace(fn:true())
>for $x in collection('test')/catalog/product
>where $x/@dept = 'WMN'
>return $x;
>
>This will add detailed logging information to your MarkLogic logs which you 
>can use determine if your range index is being leveraged or not. The output in 
>your logs is mostly identical to what you see returned from xdmp:plan()
>
>Best,
>Rob
>
>Rob Szkutak
>Associate Consultant
>MarkLogic Corporation
>rob.szku...@marklogic.com
>Cell +1.716.562.8464
>www.marklogic.com<http://www.marklogic.com>
>
>________________________________
>From: general-boun...@developer.marklogic.com 
>[general-boun...@developer.marklogic.com] on behalf of ??? [zisedeq...@163.com]
>Sent: Sunday, July 05, 2015 9:19 PM
>To: general@developer.marklogic.com
>Subject: [MarkLogic Dev General] How can i get the query plan for FWLOR query 
>statement?
>
>The xquery is:
>for $x in collection('test')/catalog/product
>where $x/@dept = 'WMN'
>return $x;
>
>I had created attribute range index on product/@dept, I would like to know 
>whether the query will use the range index when marklogic process it.
>so i ues the xdmp:plan to get the query plan, but i only the error :
><error:code>
>XDMP-UNSEARCHABLE
></error:code>
><error:name>
></error:name>
><error:xquery-version>
>1.0-ml
></error:xquery-version>
><error:message>
>Expression is unsearchable
></error:message>
>.......
>
>so how can i get the query plan for FWLOR query statement?
>or how can i konw whether the query will use the range index when marklogic 
>process it?
>
>
>-------------- next part --------------
>An HTML attachment was scrubbed...
>URL: 
>http://developer.marklogic.com/pipermail/general/attachments/20150706/f4ce97a0/attachment.html
>
>------------------------------
>
>_______________________________________________
>General mailing list
>General@developer.marklogic.com
>Manage your subscription at:
>http://developer.marklogic.com/mailman/listinfo/general
>
>
>End of General Digest, Vol 133, Issue 16
>****************************************



_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to