我有以下用于获取目录文档的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();
有什么想法吗?
答案 0 :(得分:6)
正如David所说,您不需要为此目的使用结构化查询,但如果您有将来需要:
我相信你最初的问题是这不是一个结构良好的结构化查询:
{\"queries\":[ {\"directory-query\":{\"uri\":[\"/Path/to/Docs/\"]},\"infinite\":true} ]}
您错过了顶级“查询”属性。您可以在此处找到使用目录查询的完全形成的结构化查询的示例:
http://docs.marklogic.com/guide/search-dev/structured-query#id_97452
此外,您可能已经知道,但是有一个原生Java API位于REST API之上。您可以在此处了解有关此API的更多信息:
答案 1 :(得分:3)
按目录约束是直接在搜索API上的查询参数。没有其他符号需要。