使用 neo4j 和 cypher 将 .csv 中的稀疏矩阵直接导入到图形中
Import sparse matrix from .csv directly into graph using neo4j and cypher
我有一个小的有向图作为稀疏矩阵存储在 .csv 中。该文件包含 2 列,格式如下:
1,2
2,3
1,3
1,4
2,5
3,4
3,5
4,5
每一行基本上是两个节点之间的邻接关系:1->2、2->3、1->3 等。我想将这些数据导入 neo4j 并创建一个图(作为第一步它可以是无向图)。
我尝试了以下 Cypher 代码:
LOAD CSV FROM 'file:///dummy.csv' AS line
CREATE((:node {`name`:line[1]})-[:`connects`]->(:node {`name`:line[2]}))
这是我目前为止走的最远的,但结果不是我想要的。我正在将文件读入 neo4j,但我只得到多个由两个节点和许多节点重复项组成的小图。我的目标是将每一行都读取为邻接关系,并在不产生节点重复的情况下向现有节点添加连接。此外,理想情况下,我希望在图形可视化期间显示每个节点的名称 属性(而不是节点 ID)。感谢您的帮助。
您应该使用 MERGE 以避免创建重复的节点和关系:
LOAD CSV FROM 'file:///dummy.csv' AS line
MERGE (a:node {name:line[0]})
MERGE (b:node {name:line[1]})
MERGE (a)-[:connects]->(b);
另请参阅 the documentation for how to style the browser visualization。
我有一个小的有向图作为稀疏矩阵存储在 .csv 中。该文件包含 2 列,格式如下:
1,2
2,3
1,3
1,4
2,5
3,4
3,5
4,5
每一行基本上是两个节点之间的邻接关系:1->2、2->3、1->3 等。我想将这些数据导入 neo4j 并创建一个图(作为第一步它可以是无向图)。
我尝试了以下 Cypher 代码:
LOAD CSV FROM 'file:///dummy.csv' AS line
CREATE((:node {`name`:line[1]})-[:`connects`]->(:node {`name`:line[2]}))
这是我目前为止走的最远的,但结果不是我想要的。我正在将文件读入 neo4j,但我只得到多个由两个节点和许多节点重复项组成的小图。我的目标是将每一行都读取为邻接关系,并在不产生节点重复的情况下向现有节点添加连接。此外,理想情况下,我希望在图形可视化期间显示每个节点的名称 属性(而不是节点 ID)。感谢您的帮助。
您应该使用 MERGE 以避免创建重复的节点和关系:
LOAD CSV FROM 'file:///dummy.csv' AS line
MERGE (a:node {name:line[0]})
MERGE (b:node {name:line[1]})
MERGE (a)-[:connects]->(b);
另请参阅 the documentation for how to style the browser visualization。