Take a look at 
http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http%3a//pubs/5.0doc/xml/search-dev-guide/count_estimate.xml

-- Mike

On 5 Jun 2012, at 18:18 , Sunny Wang01 wrote:

> Hi Mike,
> If use the xdmp:estimate() , sometimes the return count is not exactly,Do you 
> have this problem?
> 
> Thanks
> Sunny Wang01
> 
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Michael Blakeley
> Sent: 2012年6月5日 23:03
> To: MarkLogic Developer Discussion
> Subject: Re: [MarkLogic Dev General] how to resolve the cache full problem?
> 
> I cannot add much to that summary, expect that for this particular XQuery 
> expression it might be illuminating to wrap that cts:search with an 
> xdmp:estimate.
> 
>    xdmp:estimate(cts:search( ...etc... ))
> 
> That should not throw XDMP-EXPNTREECACHEFULL, and should return the number of 
> documents that the cts:search alone would return. You can check that against 
> your expectations for the query. If they don't match, then the problem is 
> likely to be an interaction between the cts:query portion and the database 
> configuration. For example, that ModifiedDate element might not have a range 
> index.
> 
> For paginated search, take a look at the search developers guide: 
> http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http%3a//pubs/5.0doc/xml/search-dev-guide/title.xml
>  and the search API reference: 
> http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http://pubs/5.0doc/apidoc/searchapi.xml&category=Search&function=search:search
>  - a slightly higher-level API than cts:search provides.
> 
> -- Mike
> 
> On 5 Jun 2012, at 03:51 , Abhishek53 S wrote:
> 
>> 
>> Hi Sunny,
>> 
>> I got the following answer for the same issue
>> 
>> 
>> The expanded tree cache is used to store XML fragments while they are being 
>> used during query processing. XML documents are compressed and stored on 
>> disk as fragments. As fragments are needed during query evaluation, they are 
>> retrieved from disk in their compressed format and cached in the compressed 
>> tree cache. When the query needs to actually retrieve elements, values, or 
>> otherwise traverse the contents of one of these fragments, the fragment is 
>> uncompressed and cached in the expanded tree cache. 
>> Consequently, the expanded tree cache needs to be large enough to 
>> maintain a copy of every expanded XML fragment that is simultaneously needed 
>> during query processing. (Note that this doesn't necessarily mean that every 
>> fragment used by a given query is needed simultaneously; this depends on 
>> what a query does and how it is composed.) The error message 
>> "XDMP-EXPNTREECACHEFULL: Expanded tree cache full" means that MarkLogic has 
>> run out of room in the expanded tree cache during query evaluation, and that 
>> it cannot continue evaluating that query.
>> 
>> There are four approaches to solving this problem: 
>> 1. Change the problem query so that it does not need to use as much expanded 
>> XML. 
>> 2. Tune the problem query so that it does not need to simultaneously cache 
>> as much XML. 
>> 3. Increase the size of the expanded tree cache, using the setting 
>> under Groups > Default > Configure 4. Fragment your content, if appropriate 
>> and only as a last resort.
>> 
>> Approach (1) generally means a change in requirements (for instance, 
>> returning only 100 results instead of 1000 results). The typical approach is 
>> to page through a set of results rather than return all of the results at 
>> once. 
>> Approach (2) requires knowledge of tuning XQuery for performance. In some 
>> cases it's possible to compose a query that is able to process more expanded 
>> fragments than the expanded tree cache can store at any one moment. 
>> Approach (3) will work so long as you have sufficient available memory to 
>> expand the cache without adversely impacting other server and system 
>> functionality. This strategy is often a band-aid to a problem that would 
>> better be solved through approach (1) or (2). 
>> Approach (4) reflects the fact that large XML documents can take up a lot of 
>> memory during query evaluation, and Mark Logic's fragmentation capabilities 
>> are designed to be a method of last resort in such cases. Fragmentation 
>> allows MarkLogic to load only the needed parts of large documents during 
>> query evaluation, thereby reducing memory requirements. However, 
>> fragmentation does have other ramifications for query evaluation, as 
>> described in the Developer's Guide. If your expanded tree cache problem 
>> occurs while working with large documents, fragmentation may be an 
>> appropriate solution. If your problem occurs while working with small 
>> documents, fragmentation will not help. 
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 
>> Hope this information helps. 
>> 
>> Alternatively you can reply with average document size and final search 
>> query. 
>> 
>> Abhishek Srivastav
>> Systems Engineer
>> Tata Consultancy Services
>> Cell:- +91-9883389968
>> Mailto: [email protected]
>> Website: http://www.tcs.com
>> ____________________________________________
>> Experience certainty.        IT Services
>>                       Business Solutions
>>                       Outsourcing
>> ____________________________________________
>> 
>> 
>> From:        Sunny Wang01 <[email protected]>
>> To:  MarkLogic Developer Discussion <[email protected]>
>> Date:        06/05/2012 03:27 PM
>> Subject:     [MarkLogic Dev General] how to resolve the cache full problem?
>> Sent by:     [email protected]
>> 
>> 
>> 
>> 
>> Hi All,
>> When I use the search:search to get the search result ,in the host computer 
>> ,we have 13G free space ,but there is an error like below, could you help 
>> me? 
>> 
>> <dt>XDMP-EXPNTREECACHEFULL: cts:search(fn:collection(), 
>> cts:and-query((cts:element-value-query(fn:QName("http://www.careered.c
>> om/Metadata", "IsActive"), "true", ("lang=en"), 1), 
>> cts:element-range-query(fn:QName("http://www.careered.com/Version";, 
>> "ModifiedDate"), ">=", xs:dateTime("0001-01-01T00:00:00"), (), 1), 
>> cts:element-range-query(fn:QName("http://www.careered.com/Version";, 
>> "ModifiedDate"), "<", xs:dateTime("2012-06-05T09:45:32.603096"), (), 
>> 1), ...), ()), "score-logtfidf", 1) -- Expanded tree cache full on 
>> host </dt>
>> 
>> 
>> 
>> Thanks,
>> Sunny Wang01
>> **************** CAUTION - Disclaimer ***************** This e-mail 
>> contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for 
>> the use of the addressee(s). If you are not the intended recipient, 
>> please notify the sender by e-mail and delete the original message. 
>> Further, you are not to copy, disclose, or distribute this e-mail or 
>> its contents to any other person and any such actions are unlawful. 
>> This e-mail may contain viruses. Infosys has taken every reasonable 
>> precaution to minimize this risk, but is not liable for any damage you 
>> may sustain as a result of any virus in this e-mail. You should carry 
>> out your own virus checks before opening the e-mail or attachment. 
>> Infosys reserves the right to monitor and review the content of all 
>> messages sent to or from this e-mail address. Messages sent to or from this 
>> e-mail address may be stored on the Infosys e-mail system.
>> ***INFOSYS******** End of Disclaimer ********INFOSYS***
>> 
>> _______________________________________________
>> General mailing list
>> [email protected]
>> http://community.marklogic.com/mailman/listinfo/general
>> 
>> 
>> 
>> =====-----=====-----=====
>> Notice: The information contained in this e-mail message and/or 
>> attachments to it may contain confidential or privileged information. 
>> If you are not the intended recipient, any dissemination, use, review, 
>> distribution, printing or copying of the information contained in this 
>> e-mail message and/or attachments to it are strictly prohibited. If 
>> you have received this communication in error, please notify us by 
>> reply e-mail or telephone and immediately and permanently delete the 
>> message and any attachments. Thank you
>> 
>> 
>> _______________________________________________
>> General mailing list
>> [email protected]
>> http://community.marklogic.com/mailman/listinfo/general
> 
> _______________________________________________
> General mailing list
> [email protected]
> http://community.marklogic.com/mailman/listinfo/general
> _______________________________________________
> General mailing list
> [email protected]
> http://community.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://community.marklogic.com/mailman/listinfo/general

Reply via email to