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

How can I create a property for a special vertex type in JanusGraph

我正在尝试为特定顶点类型添加 属性。假设我的图形模式中有 personcar 顶点类型,我如何才能将 namebirthday 属性仅添加到 person 顶点?

创建示例 firstName 属性:

graph.openManagement().makePropertyKey('firstName')
     .dataType‌​(String.class).cardi‌​nality(Cardinality.S‌​INGLE).make();

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

提前致谢。

随着新的 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()

这意味着 firstName 属性 键只能用在标签为 person.

的顶点上

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

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

有关详细信息,请参阅 official JanusGraph documentation on schema constraints

我更新了我的答案,因为它之前说过模式约束还不可能像现在这样。