我正在尝试生成一个边缘列表,以读入R数据帧,以便在vizNetwork包中使用。这必须以其最简单的格式,作为一个包含2列的表,"来自"和"到"。
在the neo4j console中,弹出的默认查询几乎说明了我尝试运行的查询类型,指定了一个起始点,然后生成的链是我感兴趣的图。
运行的查询是match (n:Crew)-[r:KNOWS*]-(m) where n.name='Neo' return n as Neo,r,m
,这将返回一个显示关系链的图表以及我在下面包含的表格。
Neo r m
(0:Crew {name:"Neo"}) [(0)-[0:KNOWS]->(1)] (1:Crew {name:"Morpheus"})
(0:Crew {name:"Neo"}) [(0)-[0:KNOWS]->(1), (1)-[2:KNOWS]->(2)] (2:Crew {name:"Trinity"})
(0:Crew {name:"Neo"}) [(0)-[0:KNOWS]->(1), (1)-[3:KNOWS]->(3)] (3:Crew:Matrix {name:"Cypher"})
(0:Crew {name:"Neo"}) [(0)-[0:KNOWS]->(1), (1)-[3:KNOWS]->(3), (3)-[4:KNOWS]->(4)] (4:Matrix {name:"Agent Smith"})
桌子并没有包含一个非常前卫的边缘。格式。如何使关系图以下列格式返回结果...
from to
Neo Morpheus
Morpheus Trinity
Morpheus Cypher
Cypher Agent Smith
Nicole White写了a guide on integrating rneo4j and vizNetwork,但这依赖于首先生成节点列表,然后将结果列表的id作为边列表查询中的参数引用。我希望能够获得一个纯粹的密码"如果可能的话。
答案 0 :(得分:2)
您要返回的每一行是1条边。因此,要获得所需的回报,只需匹配边缘,Neo4j将为该模式的每个有效出现创建一行。
MATCH (from)-[:KNOWS]->(to)
RETURN from.name as from, to.name as to
您可以使用WHERE模式匹配来过滤它,如此
MATCH (from)-[:KNOWS]->(to)
WHERE (:Person {name:"Neo"})-[:KNOWS*..25]->(from)
RETURN from.name as from, to.name as to