2017-03-04 69 views
0

我是Neo4j的新手,在Neo4j上做了一些练习。Neo4j导入csv制作特定图形

我有头csv文件:

product,material 
aa,bb 
aa,cc 
cc,bb 
dd,aa 

我想将它导入到N4j和创造“从” 已命名的关系,并希望它的图形是这样的:graph 起初,我认为这是很容易,我努力争取2ds,放弃... 我需要帮助。 我的代码是在这里:

load csv with headers from"files:\\test.csv" as file 
merge (p:product {id:file.product}) 
merge (m:material {id:file.material}) 
create (p)-[:from]->(m) 

,然后将结果是在这里:graph2

所以,

1.How可我做 “AA” 创造只有一个节点?

2.如何让节点显示“aa”“bb”...而不是数字?

3.btw,在n4j手册中,“导入工具”和“加载csv”有什么区别?

回答

1

问题是您在创建查询中使用了不同的标签。

CSV中的第2行创建了一个ID为'cc'的素材节点。 虽然您在第3行中具有'cc'作为您的ID,但它适用于:产品节点。在第3行执行时,没有这样的产品节点:id为'cc'(有一个:带有该id的材料节点,但由于标签不同,匹配失败),因此创建了一个新的product节点。

同样与'aa'。 CSV中的第1行和第2行合并a:产品节点'aa',但第4行中的id用于:材料节点。再次,标签是不同的,所以它不会重用您以前创建的节点。

要实现您所需的图形,如果所有的id都指向同一个节点,那么合并中的标签也必须相同。