cts:uris score-random选项不返回随机URI

时间:2017-03-21 08:42:05

标签: random xquery marklogic

cts:uris函数中,我将"score-random"添加到查询选项中,但它返回相同的结果。

这是我的示例查询

cts:uris("",("score-random"), cts:collection-query('my-collection')) [1 to 10]

与cts相反:搜索返回随机结果

cts:search(collection("my-collection"), cts:and-query(()), ("score-random"))[1 to 10] ! document-uri(.)

1 个答案:

答案 0 :(得分:4)

试试这个:

cts:uris("",("score-random","sample=10"), cts:collection-query('my-collection'))

基本上使用"sample=10"代替[1 to 10]

cts:uris()函数始终返回按字母顺序,升序或降序排序的URI。在这里,我要求返回10个随机抽样,然后按字母顺序返回。

希望返回的十个是随机顺序吗?

for $uri in cts:uris("",("score-random","sample=10"), cts:collection-query('my-collection'))
order by xdmp:random()
return $uri

(使用我的回答中的技巧https://stackoverflow.com/a/42262954/538697