Marklogic客户端api是否像XQuery一样支持cts:注册查询?

Marklogic客户端api是否像XQuery一样支持cts:注册查询?,marklogic,marklogic-8,Marklogic,Marklogic 8,我使用的是MarkLogic客户端API,我想在XQuery中缓存查询,如cts:register 在XQuery代码中,我们使用的是: let $query := "title:risk" let $final-query := cts:register(cts:query(search:parse($query, <options xmlns="http://marklogic.com/appservices/search">

我使用的是MarkLogic客户端API,我想在XQuery中缓存查询,如
cts:register

在XQuery代码中,我们使用的是:

let $query := "title:risk"
let $final-query := 
           cts:register(cts:query(search:parse($query,
               <options xmlns="http://marklogic.com/appservices/search">
                    .......
                </options>)))
return cts:search(/, $final-query)
let$query:=“标题:风险”
让$final查询:=
cts:register(cts:query)(搜索:解析($query,
.......
)))
返回cts:search(/,$final query)
我知道这段代码将生成一个类似于
56933683224713984
的数字,我们可以从MarkLogic优化中获得一些好处

然而,MarkLoigc客户端API不能提供类似于API的寄存器查询

如何优化Java代码?我担心MarkLogic无法处理原始查询(未注册),并且性能可能不好

MarkLogic-8和client-api-4.04参见。它是受支持的,但我看不到任何通过JavaAPI实现这一点的方法,但是您可以使用和编写XQuery或JavaScript代码来注册查询


如果这是您希望看到添加到Java API中的内容,请在上提交一个问题

除了扩展,您还可以使用JavaAPI中的即席查询功能

由于Java API最终是“通过REST API”在后台调用XQuery,因此使用临时调用提供了最佳的“透明度”和优化代码的能力,同时仍在使用Java API,但会牺牲更少的类型安全性和更详细的代码。您可能会对这组测试用例感兴趣,这些测试用例列举了使用截然不同的性能特征执行相同操作的多种方法。YMMV