如何在JanusGraph中为特殊顶点类型创建属性

jan*_*aph 2 gremlin janusgraph

我正在尝试为特定的顶点类型添加属性.假设我personcar我的图形架构顶点类型,我怎么可以添加namebirthday性能只对person顶点?

创建firstName属性的示例:

graph.openManagement().makePropertyKey('firstName')
     .dataType??(String.class).cardi??nality(Cardinality.S??INGLE).make();
Run Code Online (Sandbox Code Playgroud)

这里我创建顶点的新属性但是如何将其限制为特定类型的顶点?

提前致谢.

Flo*_*ann 6

使用新的JanusGraph 0.3.0版本,现在可以创建完全符合您需要的模式约束.由于默认情况下禁用了这些约束,因此首先需要通过设置schema.constraints为启用它们true.现在你可以像这样创建一个约束:

mgmt = graph.openManagement()
person = mgmt.makeVertexLabel('person').make()
name = mgmt.makePropertyKey('firstName').dataType(String.class).
    cardinality(Cardinality.SINGLE).make()
mgmt.addProperties(person, name)
mgmt.commit()
Run Code Online (Sandbox Code Playgroud)

这意味着firstName属性键只能在带有标签的顶点上使用person.

当您现在尝试将此属性添加到具有不同标签的顶点时,它将引发异常:

gremlin> g.addV('car').property('firstName','test')
Property Key constraint does not exist for given Vertex Label [car] and property key [firstName].
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅有关架构约束官方JanusGraph文档.

我更新了我之前所说的答案,他们现在还不可能有架构限制.