1

一意のプロパティ キーを使用せずに新しい頂点を追加しながら、タイタン グラフに制限を加えたいと考えています。

例: 私のタイタン グラフでは、"aid" は一意のプロパティ キーであり、"aid" を使用せずに gremlin または rexster を介して頂点を追加しようとすると、停止するはずです。

私が従った手順:

mgmt = g.getManagementSystem()   
aid = mgmt.makePropertyKey('aid').dataType(String.class).make()
mgmt.buildIndex('byAid',Vertex.class).addKey(aid).unique().buildCompositeIndex()

mgmt.commit()

gremlin>g.addVertex([aid:'aid91']);  
==>v[229640]  

*gremlin>g.addVertex([name:'srinivas']);  
==>v[246024]*

「援助」が提供されない場合、2番目のステップを制限したい。

これの解決策を教えてもらえますか?よろしくお願いします..

4

1 に答える 1

1

そのようなデータ検証は、アプリケーション レベルで行う必要があります。Titan も TinkerPop スタックも、新しい頂点が追加されたときにフィールドが存在することを保証する方法を提供しません。

使用している構文は、Titan 0.5.x (またはそれ以前) を使用していることを示しているようです。その場合、1 つの解決策は、検証を集中化する「ラッパー グラフ」を作成することです。ラッパー パターンは、TinkerPop のReadOnlyGraphIdGraphなどの機能で見ることができます。基本的には、ValidationGraphクラスを作成してTitanGraphインスタンスをコンストラクターに渡し、オーバーライドaddVertexして呼び出しをインターセプトします。その後、必要な検証を実装できます。

Titan 0.9.x/TinkerPop3 では、パターンが少し異なります。現在のモデルでは、検証を実装するためにTraversalStrategyを構築する必要があります。残念ながら、このパターンはまだ証明されていません。TP3 GAがリリースされた後、さらに発展すると確信しています。

于 2015-06-01T10:18:23.830 に答える