Good morning,

I am trying to understand how to sort within cts:search(), before applying the 
paging parameters.  The code below only sorts the subset returned by 
cts:search()[$start to $end].  Is this what collations are for?  Do collations 
require range indexes?  Would search:search() make this easier?

The default sort will be against 
$node/rdf:Description/dcterms:identifier/oxdc:doi/rdf:value; but, the 
application is required to allow the users to sort by any column's values 
(other elements).  Those sorts also need to apply to all results, rather than 
only those on the current page.

Thank you in advance.

return
<list start="{$start}" end="{$end}" total="{xdmp:estimate(cts:search(/rdf:RDF, 
$recordQuery, 'unfiltered'))}">
{
    (: TODO: Order all results by DOI then return $start to $end :)
    for $node in cts:search(/rdf:RDF, $recordQuery, 'unfiltered')[$start to 
$end]
    order by $node/rdf:Description/dcterms:identifier/oxdc:doi/rdf:value
    return
    <item>
        
<doi>{$node/rdf:Description/dcterms:identifier/oxdc:doi/rdf:value/text()}</doi>
        <title>{$node/rdf:Description/dcterms:title/text()}</title>
        <products>
        {
        for $productCode in 
$node/rdf:Description/oxdc:resourceIdentifiers/oxdc:productCode/text() return
           <product>{$productCode}</product>
        }
        </products>
    </item>
}
</list>

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

Reply via email to