2016-07-22 3 views
4

У меня есть следующий XQuery, который я использую для извлечения документов для каталога.API-интерфейс Marklogic Rest для каталога-запроса

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

Update:

с использованием API-Джерси REST, он попытался это, но получил 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

Не могли бы вы разработать то, что вы пробовали до сих пор? – grtjn

+0

Обновлено тем, что я пробовал до сих пор, что я нашел отсюда http://stackoverflow.com/questions/30189908/marklogic-400-bad-request –

ответ

3

Ограничение по каталогу - это параметр запроса непосредственно в API поиска. НЕТ других обозначений.

Посмотреть документы здесь: https://docs.marklogic.com/REST/GET/v1/search

+0

Когда я отправлю это сообщение https: // [marklogic-host]: 8801/v1/search? Collection = & directory =/Path/to/Doc/ Я получаю ответ, но uri контента, который он возвращает, не начинается с/Path/to/Doc /, но что-то совершенно другое –

+0

Можете ли вы укажите пример, который будет соответствовать вышеуказанному xquery? Как выглядит URL-адрес REST для вышеупомянутого Xquery? –

+1

Решено путем URL-адреса, кодирующего путь к каталогу. благодаря –

6

Как сказал Дэвид, вы не должны использовать структурированный запрос для этой цели, но в случае, если у вас есть потребность в будущем:

Я считаю, ваш оригинальный вопрос в том, что это не правильно сформированный структурированный запрос:

{\"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 здесь:

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

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