如何在Cayley Graph数据库中递归读取链接节点?

时间:2017-06-12 22:46:28

标签: neo4j graph-databases gremlin cayley

数据库具有形成树的节点。每个节点都跟随另一个节点,谓词“先于”。我想编写一个查询,可以在给定起始节点的情况下读取整个树。

我尝试了态射,但输出对我来说毫无意义。也许是因为我对“态射”的实际含义缺乏了解......

任何提示或实际良好示例的链接都将受到赞赏

2 个答案:

答案 0 :(得分:1)

在Neo4j中你应该这样做:

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

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

答案 1 :(得分:1)

正如@Bruno在他的回答中指出的那样,Gremlin中的*相当于FollowRecursive()。

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

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