Hi Christian, hi all

thank you for your advice. I took the approach from Christian and it’s working. 
I’m using it with query-params (form-params) with RESTXQ. But it only works for 
the very first fifty hits. I have no idea, how to implement the functionality 
to serve the next 50 hits and so on. Is it possible to run the same query with 
new $start and $max params without using the searchform again? Any further help 
appreciated. Thanks in advance.

Best regards,
Günter

> Am 25.09.2020 um 20:13 schrieb Christian Grün <christian.gr...@gmail.com>:
> 
> Hi Günter,
> 
> Here’s one way to do it:
> 
> declare variable $QUERY external := 'mailto';
> declare variable $START external := 1;
> declare variable $MAX external := 50;
> 
> let $hits := db:open('data')//text()
>  [. contains text { $QUERY }]
> let $count := count($hits)
> return <div>{
>  <p>{ concat($count, ' results, showing ', $START, ' – ',
>    min(($count, $START + $MAX - 1)), ':') }</p>,
>  <ol>{
>    for $hit in subsequence($hits, $START, $MAX)
>    return <li>{ $hit }</li>
>  }</ol>
> }</div>
> 
> As Omar has already indicated, you can e.g. use fn:subsequence to
> limit the size of a result sequence. I have defined some external
> variables, which you can assign before running your query. If you use
> RESTXQ, you can supply them with query parameters.
> 
> Hope this helps,
> Christian
> 
> 
> On Fri, Sep 25, 2020 at 1:23 PM Günter Dunz-Wolff
> <guenter.dunzwo...@gmail.com> wrote:
>> 
>> Hi all,
>> is it possible to present the results of an XQuery search in parts of 50? In 
>> order to speed up the search, only the first 50 results should be displayed 
>> and only if the user is interested in further results, 50 new results each 
>> should be displayed. Is this even possible? I did not find anything about it 
>> in the documentation.
>> 
>> Example:
>> let $collection := collection("data")
>> let $hits := $collection//*:s[.//text() contains text {$query_string}]
>> let $count_hits := count($hits)
>> return
>> <div>
>> {
>> if $count_hits <= 50 then
>>        <ol>
>>        {for $hit in $hits
>>        return
>>        <li>{$hit}</li>
>>        </ol>
>> else
>> ???
>> }
>> </div>
>> 
>> Thanks for any advice.
>> Best regards
>> Guenter
>> 
>> 

Reply via email to