5

我正在添加这样的垂直:

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

如何使用 uuid 而不是整数 id 设置属性?

4

1 回答 1

5

“id”可以有多种含义。如果您只是想使用 UUID 作为唯一标识符来查找您的顶点,那么当与您选择的图形数据库的底层索引功能结合使用时,采用您所拥有的方法就可以了。换句话说,只要你有一个关于“id”的索引,你就会很快找到你的顶点。在这种用法中,“id”显然只是顶点的一个属性,您可能会发现对于某些图形数据库,“id”实际上是一个保留术语,不能用作属性键。最好选择不同的键名。

如果不使用“id”作为属性键,您的意思是您希望设置实际的顶点标识符,由 引用T.id,如下所示:

g.addV(T.id, uuid)

那么您首先需要使用允许分配标识符的图形数据库实现。TinkerGraph 就是这样一种实现。通过这种方式,您可以本地分配顶点的标识符,而不是让图形数据库为您创建它。

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]
于 2017-12-28T11:55:26.867 回答