Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过neo4j中导入的csv文件创建唯一的节点和关系?_Neo4j_Cypher - Fatal编程技术网

如何通过neo4j中导入的csv文件创建唯一的节点和关系?

如何通过neo4j中导入的csv文件创建唯一的节点和关系?,neo4j,cypher,Neo4j,Cypher,您好,我正在尝试将csv文件中的一些数据导入ubuntu 12.04中的neo4j csv文件是一个没有标题的两列数据文件,其格式如下: 12ffew3213,232rwe13 12ffew3213,5yur2ru2r rwerwerw3,432rwe13 rwerwerw3,5yur2ru2r 问题是第0行和第1行中的数据不是唯一的,例如,数据可能是3000行,并且只有100个唯一的第0行值和300个唯一的第1行值 我想构建一个图,其中包含唯一的100个row0节点和300个row1节点,以

您好,我正在尝试将csv文件中的一些数据导入ubuntu 12.04中的neo4j

csv文件是一个没有标题的两列数据文件,其格式如下:

12ffew3213,232rwe13
12ffew3213,5yur2ru2r
rwerwerw3,432rwe13
rwerwerw3,5yur2ru2r
问题是第0行和第1行中的数据不是唯一的,例如,数据可能是3000行,并且只有100个唯一的第0行值和300个唯一的第1行值

我想构建一个图,其中包含唯一的100个row0节点和300个row1节点,以及这些节点之间的3000个关系(如果12ffew213232rwe13出现两次,则有2条边)

因为我是neo4j和Cypher的新手。在我尝试创建和合并一段时间后,我仍然无法构建唯一的节点。我用了类似

LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (:A { number: toString(line[0])})-[:LIKES]->(:B { ID: toString(line[1])})
有什么想法吗?谢谢

这是你要做的

LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (n:A {number : line[0]})
WITH line, n
MERGE (m:B {ID : line[1]})
WITH m,n
MERGE (n)-[:LIKES]->(m);

首先创建或匹配
:A
节点,然后创建或匹配
:B
节点,然后创建或匹配关系。
WITH
子句收集序列中每一点的结果,以便在下一步中使用。要了解更多关于
WITH
子句的信息,请阅读。

对于带有标题的csv,请阅读相同的内容。如果我们的标题为'head1','head2',我们的代码将为:

LOAD CSV WITH HEADERS FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (n:A {number : line.head1})
WITH line, n
MERGE (m:B {ID : line.head2})
WITH m,n
MERGE (n)-[:LIKES]->(m);

回答得好。有什么方法可以用HEADER来实现这一点吗?