我正在尝试通过实现由Java调用触发的服务器端xquery搜索来改善对Spring-Boot Services的搜索
我尝试了一些带有循环的东西,但是没有用
....
protected DatabaseClient databaseClient;
public DocumentDTO searchDocument(String language, String documentId, String... culsterIds) throws JAXBException {
ServerEvaluationCall invoker = databaseClient.newServerEval();
invoker.modulePath("/main/searchForDocuments.xqy")
.addVariable("language", language)
.addVariable("documentId", documentId)
.addVariable("clusterIds", consentTemplateIds);
....
应将变量插入xqy脚本中以获取相应的变量 参数的搜索结果。
答案 0 :(得分:1)
您已经确定,addVariable()仅采用单个值。
您可以将值列表序列化为JSON数组,然后使用JSONWriteHandle发送JSON数组。然后,在XQuery中,使用xdmp:from-json()将JSON数组节点转换为内存数组。
或者,如果您使用的是MarkLogic 9的最新版本,则可以使用数据服务来生成为端点模块指定的客户端接口:
http://docs.marklogic.com/guide/java/DataServices
希望有帮助,