2016-09-28 78 views
2

我使用Scala的Titan Cassandra圖形數據庫。 創建頂點和邊緣到在Scala中創建頂點gremlin titan圖DB

val conf = new BaseConfiguration() 
conf.setProperty("storage.backend", inmemory) 
TitanFactory.open (conf) 

val graph = TitanFactory.open (conf) 
val v0 = graph + "test1" 
val V1 = graph + "test2" 
v1 ---("test", a→ 20, b → 30) --> v2 

據創建2個頂點和1個邊緣上的那些屬性。 我的問題是,

下一次當我正在執行它正在創建另一個2頂點與其邊緣。我不需要創建任何頂點與標籤是相同的vextex。

,或者有什麼辦法可以創建一個ID頂點,這樣的事情V(TEST1),而不是隨機序列

感謝

回答

2

通常你想創建自己獨特的屬性,作爲一個ID 。從gremlin-scala它看起來像有兩種方法可以做到這一點:

val vertex = graph + ("A Vertex", ID → "1") 

val vertex = graph + "A Vertex" 
vertex.setProperty(ID, "1") 

這樣,以後你可以到下面的遍歷找到這個頂點:

graph.traversal().V().has("ID", "1").next() 

注意:既然你使用泰坦,你很可能會想告訴泰坦這個屬性應該被索引,並且它應該是唯一的。 This頁面向您展示瞭如何在Titan中創建唯一索引。

+0

有什麼辦法可以檢查頂點是否已經存在與否。目前我正在做像'graph.containsVertexLabel(「label」)''。如果不存在,請創建或不要 – Gopi

+0

可能有一個更快的方法,但你可以做一個快速遍歷。 'g.traversal()。V()。hasLabel( 「標籤」)。hasNext()' –

相關問題