2017-01-04 6 views
1

Ich benutze java-api der Marklogic-Datenbank, nach meiner Anforderung lösche ich die dreifache Grafik jedes Mal, wenn ich Anfrage erhalte und dann eine neue mit Tripeln erstellen. Für den Augenblick habe ich den Code in try-catch-Block eingepackt, um die Ausnahme abzufangen und fortzufahren.Wie überprüft man, ob ein Graph in der marklogic-Datenbank existiert oder nicht?

try { 
    GraphManager graphManager = client.newGraphManager(); 
    graphManager.setDefaultMimetype(RDFMimeTypes.NTRIPLES); 
    graphManager.delete(graphUri) 
} 
catch (Exception ex) { 
    // do nothing for this 
} 

Gibt es eine bessere Art und Weise für das bestehende Diagramm des Tripels mit Graph-Manager zu überprüfen, habe ich Graph-Manager-Klasse gesehen, aber ich fand keine Möglichkeit, die Verfügbarkeit von Graphen zu überprüfen.

Antwort

2

Sehen Sie bitte diesen Endpunkt:

https://docs.marklogic.com/REST/HEAD/v1/graphs

ich lieber verwenden: https://docs.marklogic.com/REST/GET/v1/graphs Mit dem Namen Graph und Kategorie auf ‚Metadaten.

+0

Hey, ich benutze Graph Manager von Java-API für Tripel, gibt es eine Möglichkeit zu prüfen, ob Graph existiert oder nicht durch GraphManager, ich habe die Frage erneut aktualisiert. –

+0

Das nächste ist das, was Dave Cassel vorschlägt - aber in meinem Fall würde die Auflistung existierender Graphen mit zeitlichen Daten zu Millionen von Antworten führen. Wenn Sie GraphManager verwenden und nicht nur die Liste der verfügbaren Diagramme durchlaufen, besteht die einzige andere Möglichkeit darin, eine Aktion für ein Diagramm auszuführen und den Fehler ResourceNotFoundException abzufangen (wie getPermissions). Aber das ist der Ansatz, den Sie bereits verwenden, glaube ich. –

+0

Ja, die Ausnahme zu fangen ist was ich schon mache, ich dachte, es könnte etwas zu prüfen, ob es existiert, wie Rest Kopf Anruf Sie vorgeschlagen, danke für die Antwort. –

2

Rufen Sie mit GraphManager listGraphUris. Das wird Ihnen eine Iterator<String> geben. Durchlaufen Sie diese, um zu prüfen, ob der URI des Diagramms, an dem Sie interessiert sind, vorhanden ist.

+0

Ich habe dies nicht erwähnt, weil, wenn Sie auch zeitliche Daten haben, die Anzahl der Graphen diesen Ansatz wahrscheinlich kostspielig machen wird. –

+0

In der Anwesenheit von genügend Sammlungen, um 'listGraphUris' eine schlechte Idee zu machen, würde ich eine REST-Erweiterung schreiben, um das zu tun, was ich brauchte, und dies über die Java-API aufzurufen. –

Verwandte Themen