我使用的是MarkLogic客户端API,我想像cts:register一样在XQuery中缓存查询。
在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)我知道这段代码会产生一个像56933683224713984这样的数字,我们可以从MarkLogic优化中得到一些好处。
但是,MarkLoigc客户端API不能提供类似于注册查询的API。
如何优化我的Java代码?我担心MarkLogic无法处理原始查询(未注册),而且性能可能不好。
MarkLogic-8 & client-api-4.04
发布于 2018-09-04 03:55:32
除了扩展之外,您还可以使用Java中的AdHoc查询特性。47102
由于Java最终是通过REST调用XQuery的,所以使用特殊调用提供了最佳的“透明性”和优化代码的能力,同时仍然使用Java而牺牲了更少的类型安全性和稍微冗长的代码。您可能对这组测试用例感兴趣,这些测试用例列举了具有截然不同的性能特征的多种方法来完成同一件事情。YMMVhttps://github.com/DALDEI/mlperf
发布于 2018-09-04 01:23:04
见cts:注册。它是受支持的,但我看不出有任何方法可以通过Java做到这一点,但是您可以使用扩展并编写XQuery或JavaScript代码来注册查询。
如果您希望将其添加到Java中,请在的GitHub页面上提交一个问题。
https://stackoverflow.com/questions/52142725
复制相似问题