2016-07-22 24 views
4

Ich habe die folgende XQuery, die ich verwende, um Dokumente für ein Verzeichnis abzurufen.Marklogic Rest API für Verzeichnis-Abfrage

Jetzt muss ich dies in einen REST-Aufruf übersetzen, aber ich kann nicht scheinen, es zu knacken, die Dokumentation auf dieser Seite folgend.

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

Update:

die Jersey REST-API, es versucht, dies aber bekam 406 Fehler

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(); 

Irgendwelche Ideen?

+0

Könnten Sie das näher erläutern, was Sie bisher versucht? – grtjn

+0

Aktualisiert mit was ich bisher versucht habe, was ich von hier http://stackoverflow.com/questions/30189908/marklogic-400-bad-request –

Antwort

3

Die Einschränkung nach Verzeichnis ist ein Abfrageparameter direkt in der Such-API. KEINE andere Notation benötigt.

Lesen Sie die Dokumentation hier: https://docs.marklogic.com/REST/GET/v1/search

+0

Wenn ich diese commadd senden https: // [marklogic-host]: 8801/v1/search? Collection = & directory =/Pfad/zu/Doc/ Ich bekomme eine Antwort, aber die uri des Inhalts, den sie zurückgibt, startet nicht mit/Path/to/Doc/aber etwas ganz anderes –

+0

Kannst du ein Beispiel liefern, das mit der obigen xquery übereinstimmt? Wie sieht die REST-URL für die obige Xquery aus? –

+1

Gelöst durch URL, die den Verzeichnispfad codiert. Vielen Dank –

6

Wie David sagte, Sie müssen nicht Structured Query für diesen Zweck verwenden, aber falls Sie zukünftigen Bedarf:

Ich glaube, Ihr ursprüngliches Problem war, dass Dies ist keine strukturierte Abfrage:

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

Sie vermissen die oberste "Abfrage" -Eigenschaft. Sie können ein Beispiel einer voll ausgebildeten strukturierten Abfrage finden, die Verzeichnis-Abfrage hier verwendet:

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

Auch sind Sie wahrscheinlich bereits wissen, aber es ist eine native Java-API, die oben auf dem REST-API sitzt. Sie können hier mehr über diese API erfahren:

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

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