【问题标题】:Constraints for graph models图模型的约束
【发布时间】:2018-05-10 13:19:35
【问题描述】:

我有四个可能的链,可以由 6 个不同的链节组成:

 G0 -> G1 -> G2
 E0 -> E1 -> E2
 G0 -> E1 -> G2
 E0 -> G1 -> G2

现在我想用一个图模型来表达这四个链,如下图所示:

如果我使用图形查询语言来询问,例如给我所有以 G0 作为第一个顶点和 E2 作为最后一个顶点的路径,我会得到一个路径 G0 -> E1 -> E2 这不是有效的路径或链出四个...

所以我的问题是是否有可能表达这样的约束,以便我只收到“有效”路径?

【问题讨论】:

    标签: graph neo4j graph-databases gremlin


    【解决方案1】:

    我不明白你为什么说路径G0 -> E1 -> E2 无效。根据您的定义,它应该是唯一有效的路径。此查询应返回所需的结果:

    g.V(G0).               /* G0 as first vertex */
      repeat(out()).
        until(__.is(E2)).  /* E2 as last vertex  */
      path()               /* all paths          */
    

    【讨论】:

      【解决方案2】:

      在最简单的解决方案通常是最好的座右铭中,我会这样做。

      1) 为每个链创建一个节点来表示该链。

      2) 创建从该节点到链中每个节点的关系,并在关系上添加索引属性。 (您可以对第一个和最后一个元素使用首尾关系,或者将其添加为属性以便于 Cyphers)

      3) 改为在您的“链”节点上运行 Cyphers。

      这样做的任何其他方式都会使 Cypher 过于复杂,或者有可能将您的原始数据损坏到可以使用大麦的程度。这是最简单、最灵活的设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多