用于目录查询的 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。不需要其他符号。
正如大卫所说,您不需要为此目的使用结构化查询,但如果您将来有需要:
我认为您最初的问题是这不是一个格式正确的结构化查询:
{\"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 的更多信息:
我有以下 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。不需要其他符号。
正如大卫所说,您不需要为此目的使用结构化查询,但如果您将来有需要:
我认为您最初的问题是这不是一个格式正确的结构化查询:
{\"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 的更多信息: