First, it seems a bit odd you are using the search: api to create the search
but not to execute it.
You may find many of your problems solved by using search:search to execute the
search.
Not knowing what your search looks like I will guess you return documents based
on a search then want the books out of them,
where the search criteria may be outside the book element ? If so as others
recommended use a subset of the results.
But you need to do so in the same expression as the search or indexing is not
as efficient.
I.e instead of
let $searchResults := cts:search(fn:collection("trustedPartnerLogs"),
cts:query($cts-query))
return $searchResults/book
Do
let $searchResults := cts:search(fn:collection("trustedPartnerLogs"),
cts:query($cts-query))[1 to 100]/books
Or if need be
let $searchResults := (cts:search(fn:collection("trustedPartnerLogs"),
cts:query($cts-query))/books)[1 to 100]
Generally the first rule is you dont want to load into memory thousands of
documents to sub query with xpath.
Rather refine the search to get closer to what you want or use a subset and
then xpath those.
Do so directly on the cts:search call not on a result variable.
Better yet use the search:search API which can do much of this for you.
-----------------------------------------------------------------------------
David Lee
Lead Engineer
MarkLogic Corporation
[email protected]
Phone: +1 650-287-2531
Cell: +1 812-630-7622
www.marklogic.com<http://www.marklogic.com/>
This e-mail and any accompanying attachments are confidential. The information
is intended solely for the use of the individual to whom it is addressed. Any
review, disclosure, copying, distribution, or use of this e-mail communication
by others is strictly prohibited. If you are not the intended recipient, please
notify us immediately by returning this message to the sender and delete all
copies. Thank you for your cooperation.
From: [email protected]
[mailto:[email protected]] On Behalf Of Danny Sinang
Sent: Wednesday, July 25, 2012 4:22 PM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] How to speed up getting child element
Hi David,
Below is my cts:search() call.
How do I do what you're suggesting ?
let $cts-query := search:parse($searchQuery, $options)
let $searchResults := cts:search(fn:collection("trustedPartnerLogs"),
cts:query($cts-query))
Regards,
Danny
On Wed, Jul 25, 2012 at 3:01 PM, David Lee
<[email protected]<mailto:[email protected]>> wrote:
The other alternative (or in combination) ... if all you want is the book
element , augment your cts:search to just return the book elements.
-----------------------------------------------------------------------------
David Lee
Lead Engineer
MarkLogic Corporation
[email protected]<mailto:[email protected]>
Phone: +1 650-287-2531<tel:%2B1%20650-287-2531>
Cell: +1 812-630-7622<tel:%2B1%20812-630-7622>
www.marklogic.com<http://www.marklogic.com/>
This e-mail and any accompanying attachments are confidential. The information
is intended solely for the use of the individual to whom it is addressed. Any
review, disclosure, copying, distribution, or use of this e-mail communication
by others is strictly prohibited. If you are not the intended recipient, please
notify us immediately by returning this message to the sender and delete all
copies. Thank you for your cooperation.
From:
[email protected]<mailto:[email protected]>
[mailto:[email protected]<mailto:[email protected]>]
On Behalf Of Geert Josten
Sent: Wednesday, July 25, 2012 1:53 PM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] How to speed up getting child element
Hi Danny,
To put it simple: don't do that on all 88 thousand results, but only those you
want to show on a search result page. That is why search:search applies
pagination by default, quite convenient by the way, saves you from a lot of
trouble doing it yourself..
Kind regards,
Geert
Van:
[email protected]<mailto:[email protected]>
[mailto:[email protected]<mailto:[email protected]>]
Namens Danny Sinang
Verzonden: woensdag 25 juli 2012 19:49
Aan: general
Onderwerp: [MarkLogic Dev General] How to speed up getting child element
Hi,
I have a cts:search query that returns 88,542 results in juts 0.029 seconds.
Problem is, when I do this :
let $x := $searchResults/book
the total elapsed time jumps to 2.87 seconds.
Is there a better / faster way of doing this ?
Regards,
Danny
_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general