在不使用显式循环的情况下按 cts:score 对 cts:search 结果进行排序

Sort cts:search results by cts:score without using expicit loop

我想获得 cts:search data sorted on the basis of cts:score 的结果。我正在使用以下代码 -

(
        if ($direction = "descending")
        then
            for $result in cts:search (...)
            order by cts:score($result) descending
            return $result/element()
        else
            for $result in cts:search (...)
            order by cts:score($result) ascending
            return $result/element()
    )[$first-result to $last-result]

有没有办法以排序的方式从 cts:search 中获取结果?

当前代码的问题是,在大数据集的情况下,它会给出 XDMP-EXPNTREECACHEFULL 错误。增加 Expanded Tree Cache 的大小不是一个选项。所以我只需要在这部分做点什么。 请提出建议。

我找到了解决方案。我们可以使用 cts:score-order option with in the cts:search