【问题标题】:How to read linked-nodes recursively in Cayley Graph Database?如何在 Cayley Graph 数据库中递归读取链接节点?
【发布时间】:2017-06-12 22:46:27
【问题描述】:

数据库具有形成树的节点。每个节点都用谓词“precedes”跟在另一个节点之后。我想写一个查询,可以读取给定起始节点的整个树。

我尝试过 Morphism,但输出对我来说毫无意义。也许是因为我对“形态学”的真正含义缺乏了解......

任何提示或链接到实际的好例子将不胜感激

【问题讨论】:

    标签: neo4j graph-databases gremlin cayley


    【解决方案1】:

    正如@Bruno 在他的回答中指出的那样,Gremlin 中 * 的等价物是 FollowRecursive()。

    var c1 = g.M().Both("precedes")
    g.V("chain-1").FollowRecursive(c1).All()
    

    这里的一个关键是 Morphism Query 中的 .Both 部分。它编码谓词的方向应该是In和Out。我不确定这如何映射到 Neo4j 查询模式

    【讨论】:

      【解决方案2】:

      在 Neo4j 中你应该这样做:

      MATCH p = (:Root)-[:precedes*]-()
      RETURN p
      

      请注意,在关系类型之后指定的* 将在整个图表中进行完整搜索。它可能会导致内存问题。

      【讨论】:

      • 谢谢。任何想法在 Gremlin/Gizmo 中可能是什么样子?或者这些概念的关键字?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多