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
