Hi Geert,
Thanks for the reply which has me thinking a bit differently. Once I find the target document the query return elements from the root document and also elements from one of the documents fragments. So would it be possible in a separate cts:search(), to return a specific fragment based upon the document ID (or something) and the filter for the fragment, avoiding the reconstruction of the entire document? cts:document-fragment-query() returns the document according to the API docs. How can I return just a fragment? This is part of a project conversion to MarkLogic which is 99.9% complete (with greatly improved performance), and too late for data refactoring. Thanks, gary From: general-boun...@developer.marklogic.com [mailto:general-boun...@developer.marklogic.com] On Behalf Of Geert Josten Sent: Friday, November 11, 2011 2:23 PM To: General MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] XPath performance in fragementeddocuments Hi Gary, It might help if you could supply us a bit more of the relevant code, most importantly the cts search itself, and the return of the for-loop. It would also help us understand your problem better if you could explain in more functional terms what you are actually trying to achieve. But my first impression is that you are more or less right. If $g0data spans multiple fragments, they are all retrieved, but that will happen anyhow if you are going to return $detailInfo. If you wouldn't, but return AcctPolicy details only, you could use a search expression that would return them directly. But it depends on your use case whether that would work. Apart from all this, you might want to consider splitting your large documents into small ones each containing only one user info. That would be more straight-forward in several respects.. (Mike gave an excellent summary of all important considerations regarding this just yesterday, look here: http://markmail.org/message/wv5wmrkpgoyuqzq6) Kind regards, Geert Van: general-boun...@developer.marklogic.com [mailto:general-boun...@developer.marklogic.com] Namens Gary Larsen Verzonden: vrijdag 11 november 2011 19:14 Aan: 'General MarkLogic Developer Discussion' Onderwerp: [MarkLogic Dev General] XPath performance in fragemented documents I'm working with a small set of documents (~100) but each one contains 4k fragments of user info. The query results need to be grouped by user and list the documents that match the user info. Iteration through all the users and matching documents is fairly quick using cts constraining queries. It appears the real performance bottleneck occurs when locating the user info in each matching document using XPath: {for $detailInfo in $g0data[accountPolicies/AcctPolicy[acctPolicyDisplayPath = $g0value]] The fragment root in this case is AcctPolicy. Is there anything I can do which would help XPath performance matching to this fragment data element? My guess is that the entire document is being reconstructed from all the fragments even though only one fragment will match (probably a wrong guess J). Thanks, gary
_______________________________________________ General mailing list General@developer.marklogic.com http://developer.marklogic.com/mailman/listinfo/general