2017-01-04 6 views
1

私はMarklogicデータベースのjava-apiを使用しています。要求に応じてトリプルグラフを削除し、トリプルで新しいものを作成します。今のところ、try-catchブロックでコードをラップして例外を捕捉して処理を進めています。グラフがmarklogicデータベースに存在するかどうかをチェックする方法は?

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

グラフマネージャとトリプルの既存のグラフをチェックするための任意のより良い方法はあります、私はグラフマネージャクラスを見てきましたが、私は、グラフの可用性を確認する方法を見つけることができませんでした。

答えて

2

このエンドポイントを参照してください。

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

私が使用することを好む: https://docs.marklogic.com/REST/GET/v1/graphs メタデータ「に設定という名前のグラフとカテゴリで。

+0

こんにちは私は、三つ組にjava-apiのグラフマネージャーを使用しています。グラフが存在するかどうかを確認する方法はありますか?GraphManagerを介して、もう一度質問を更新しました。 –

+0

Dave Casselが最も近いのは、私の場合、一時的なデータでは、既存のグラフをリストすると何百万という回答が出てくると思います。 GraphManagerを使用すると、利用可能なグラフのリストを反復する以外に、グラフ上でアクションを実行してResourceNotFoundExceptionの失敗(getPermissionsなど)をキャッチしようとする唯一のオプションがあります。しかし、これは既にあなたがすでに使っているアプローチです、私は信じています。 –

+0

はい、例外をキャッチすることは私がすでにやっていることです、もしあなたが提案した休憩ヘッドコールのように、それが存在するかどうかを確認する何かがあるかもしれないと思っています。 –

2

GraphManagerでは、listGraphUrisを呼び出します。それはあなたにIterator<String>を与えるでしょう。それをループして、興味のあるグラフのURIが存在するかどうかを確認します。

+0

私はこれについて言及していませんでした。なぜなら、時間的なデータも持っていれば、グラフの数によってこのアプローチはコストがかかる可能性があるからです。 –

+0

'listGraphUris'を悪い考え方にするのに十分なコレクションがある場合は、REST拡張を記述して、必要な処理を行い、Java APIを通して呼び出すことができます。 –

関連する問題