2016-09-28 76 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()' –

相关问题