neo4j - 从可变长度路径生成neo4j中的边列表
问题描述
我正在尝试生成要读入 R 数据帧以在 vizNetwork 包中使用的边列表。这必须以最简单的格式作为具有 2 列“从”和“到”的表格。
在neo4j 控制台中,弹出的默认查询几乎说明了我尝试运行的查询类型,其中指定了起点,然后生成的链就是我感兴趣的图。
运行的查询是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 编写了关于集成 rneo4j 和 vizNetwork 的指南,但这依赖于首先生成节点列表,然后将结果列表的 id 作为边缘列表查询中的参数引用。如果可能的话,我希望实现一种“纯密码”方法。
解决方案
您要返回的每一行都是 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
推荐阅读
- unity3d - 为什么导入后处理包后后处理卷不存在?
- c# - 查看/修改不同 WPF 程序的 VisualTree
- c# - 如何在特定时间和特定队列中安排 Hangfire 后台作业?
- firebase - FLutter 文件初始化失败
- c# - 在 CSV 文件中搜索值 c# WPF
- html - Angular - 在订阅计时器上停止滚动捕捉到顶部
- android - 通过 gradle 任务在 android 中运行测试子集
- ios - 如何在 react-native 项目中支持英特尔和 arm
- python - Matplotlib Legend 未出现在 3D 散点图中
- tensorflow - 为 Tensorflow OD api 生成 TFRecord 的问题