Many thanks again for your answer Geert.
I will take in account your answer.

Lanz

On Fri, Nov 12, 2010 at 18:41, Geert Josten <geert.jos...@daidalos.nl> wrote:
> Hi Lanz,
>
> You could try to use XPath, but you need some changes to make sure the 
> expression can be optimized.
>
> First, you need a searchable path expression. Searchable expression cannot 
> start with variables, so get the base-uri of $doc and start your path with 
> doc($uri) instead of $doc.
>
> Second, I think it is best to add Item as Fragment Root, and replace 
> /Items/Item with //Item.
>
> Third thing you should do is replace count() with xdmp:estimate(). The speed 
> of indexes is all about not loading data into memory you don't need. Count 
> forces the processor to load all Items into memory, slowing the count down. 
> Xdmp:estimate just grabs references to fragments from the index and counts 
> those, much quicker.
>
> There are some side notes to xdmp:estimate, but this should work I guess.
>
> http://developer.marklogic.com/pubs/4.2/apidocs/Ext-4.html#xdmp:estimate
>
> Kind regards,
> Geert
>
>>
>
>
> drs. G.P.H. (Geert) Josten
> Consultant
>
> Daidalos BV
> Hoekeindsehof 1-4
> 2665 JZ Bleiswijk
>
> T +31 (0)10 850 1200
> F +31 (0)10 850 1199
>
> mailto:geert.jos...@daidalos.nl
> http://www.daidalos.nl/
>
> KvK 27164984
>
>
> De informatie - verzonden in of met dit e-mailbericht - is afkomstig van 
> Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit 
> bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit 
> bericht kunnen geen rechten worden ontleend.
>
>> From: general-boun...@developer.marklogic.com
>> [mailto:general-boun...@developer.marklogic.com] On Behalf Of Lanz
>> Sent: vrijdag 12 november 2010 16:19
>> To: general
>> Subject: [MarkLogic Dev General] Optimize time spent for a
>> query using Element range Index
>>
>> Hi All,
>>
>> I'm trying to take advantage of 'Element range Index' in a query but
>> can't find how...
>>
>> Here is my context :
>> <Items>
>>    <Item>
>>       <Productid>72764</Productid>
>>       <ItemType>Article</ItemType>
>>       <DOI>budget-10xxxyyy</DOI>
>>       <Element>C</Element>
>>       <VersionCode>E</VersionCode>
>>       <Theme>
>>          <ProductId>72764</ProductId>
>>          <ThemeCode>37</ThemeCode>
>>       </Theme>
>>       <Theme>
>>          <ProductId>72764</ProductId>
>>          <ThemeCode>39</ThemeCode>
>>       </Theme>
>>    </Item>
>>    <Item>
>>       <Productid>72692</Productid>
>>       <ItemType>Book</ItemType>
>>       <DOI>budget-10-yyyyyxxxx</DOI>
>>       <Element>C</Element>
>>       <VersionCode>E</VersionCode>
>>       <Theme>
>>          <ProductId>72692</ProductId>
>>          <ThemeCode>37</ThemeCode>
>>       </Theme>
>>       <Theme>
>>          <ProductId>72692</ProductId>
>>          <ThemeCode>39</ThemeCode>
>>       </Theme>
>>    </Item>
>> ....
>> </Items>
>>
>> I want to get statistics of how many Items I have for a given
>> ThemeCode by ItemType (ie for the ThemeCode '37' : I have 53 items of
>> ItemType 'Article' for the ThemeCode '37' and 89 items of ItemType
>> 'Book' ).
>> I have the right result using pure Xpath but it takes time  :
>> fn:count($doc/Items/Item[ItemType = $item/@name and Theme/ThemeCode =
>> $themeId]) (where $doc is my searched document, $item/@name is the
>> name of itemtype in a loop and $themeId the selected themeCode)
>> I have created 2 Element range Index, one for element ItemType and one
>> for element ThemeCode. How can I get same statistics using 'nested'
>> Element range Index and cts:and-query (or other syntax ?) ?
>>
>> Any suggestions would be appreciated, many thanks
>> Lanz
>> _______________________________________________
>> 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
>
_______________________________________________
General mailing list
General@developer.marklogic.com
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to