MarkLogic 9 查询中的多个集合

MarkLogic 9 multiple collections in the query

如何使用 cts:uris() 从 Marklogic 9 中的多个集合中获取 uri。 查询返回一个空序列

let $u := cts:uris((),(),cts:and-query((cts:collection-query("/lib/info"),                               
                                       cts:collection-query("/lib/top10"),
                        cts:element-value-query(xs:QName("function"),"stats") 
                                   ))
              )
return $u

您想要同时包含两个集合还是其中一个的文档?像您一样使用 and-query 意味着它只会 return 具有两者的文档。将其转换为 or-query 并可能用 and-query 将其全部包装起来。为简单起见,您还可以将序列传递给 collection-query 以匹配任何序列。最后,您不需要 letreturn,对于大型结果集,摆脱它们可以让服务器流而不是缓冲区。

cts:uris((),(),
  cts:and-query((cts:collection-query(("/lib/info","/lib/top10")),
                 cts:element-value-query(xs:QName("function"),"stats")
               ))
)