2017-12-25 5 views
0

私はこのようなverticlesを追加している:GremlinでUUIDをidとして使用するには?

g.addV("foobar").property("id", 1).property(...etc...

私が代わりに整数IDのUUIDでプロパティを設定できますか?

+0

違う値で 'property()'を使うことはできませんか? – Progman

+0

はい、それは実際に私が今やっていることです:-) –

+0

次に、質問/問題は何ですか? – Progman

答えて

1

「id」は複数の意味を持つことができます。選択したグラフデータベースの基礎となるインデックス機能と組み合わせて使用​​すると、頂点をルックアップするための一意の識別子としてUUIDを使用することを意味するだけであれば、そのアプローチをとることができます。言い換えれば、 "id"にインデックスがある限り、素早く頂点を見つけることができます。このような使い方では、「id」は実際には頂点のプロパティに過ぎず、特定のグラフデータベースの場合、「id」は実際には予約語であり、プロパティキーとして使用できません。別のキー名を選択するのが最善の方法です。

代わりにプロパティのキーとして「ID」を使用しての、あなたは実際の頂点識別子を設定したいことを意味している場合は、のように、T.idによって参照:

g.addV(T.id, uuid) 

あなたが最初に使用する必要があります識別子の割り当てを可能にするグラフデータベースの実装。 TinkerGraphはそのような実装の1つです。この方法では、グラフデータベースで作成するのではなく、頂点の識別子をネイティブに割り当てます。

gremlin> graph = TinkerGraph.open() 
==>tinkergraph[vertices:0 edges:0] 
gremlin> g = graph.traversal() 
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] 
gremlin> g.addV(id, UUID.randomUUID()) 
==>v[c2d673de-2425-4b42-bc1e-68ff20e3b0a8] 
gremlin> g.V(UUID.fromString("c2d673de-2425-4b42-bc1e-68ff20e3b0a8")) 
==>v[c2d673de-2425-4b42-bc1e-68ff20e3b0a8] 
関連する問題