用于目录查询的 Marklogic Rest API

Marklogic Rest API for directory-query

我有以下 XQuery,用于获取目录的文档。

xquery version "1.0-ml";

cts:search(fn:collection(), cts:directory-query("/Path/To/Docs/", "infinity"))

现在我需要将其转换为 REST 调用,但我似乎无法按照本页上的文档破解它。

https://docs.marklogic.com/REST/GET/v1/search

更新:

使用 Jersey REST API,它试过了但出现 406 错误

String query =  "{\"queries\":[ {\"directory-query\":{\"uri\":[\"/Path/to/Docs/\"]},\"infinite\":true} ]}";

String encodedQuery = URLEncoder.encode(query, "UTF-8");
WebTarget target = searchWebTarget.queryParam("structuredQuery", encodedQuery);

final Response response = target.request().get();

有什么想法吗?

按目录约束是直接在搜索上的查询参数 API。不需要其他符号。

在此处查看文档:https://docs.marklogic.com/REST/GET/v1/search

正如大卫所说,您不需要为此目的使用结构化查询,但如果您将来有需要:

我认为您最初的问题是这不是一个格式正确的结构化查询:

{\"queries\":[ {\"directory-query\":{\"uri\":[\"/Path/to/Docs/\"]},\"infinite\":true} ]}

您缺少顶级 "query" 属性。您可以在此处找到使用目录查询的完整结构化查询示例:

http://docs.marklogic.com/guide/search-dev/structured-query#id_97452

此外,您可能已经知道,REST API 之上还有一个原生 Java API。您可以在此处了解有关此 API 的更多信息:

https://docs.marklogic.com/javadoc/client/index.html

http://docs.marklogic.com/guide/java