在neo4j中使用LOAD CSV创建条件关系

问题描述:

我的任务是将一些朋友或关系导入到一个简单的neo4j图形db中。我的输入数据是具有以下结构的CSV:在neo4j中使用LOAD CSV创建条件关系

owner,friend,type 
Bob,Charlie,friend 
Alice,Chris,follower 

在上面的例子查理是Bob的朋友,克里斯是爱丽丝的追随者。我想用LOAD CSV将这些批量导入到neo4j中,但是在导入过程中创建条件关系时遇到了问题。进口代码看起来是这样的:

LOAD CSV WITH HEADERS FROM "file:./graph.csv" AS csvLine 
WITH csvLine.owner AS owner, 
    csvLine.friend AS friend, 
    csvLine.type AS Type 

MERGE (o:Person { name: owner }) 
MERGE (c:Person { name: friend }) 
MERGE (u)<-[:IS_FRIEND {type: Type}]-(c); 

我宁愿有两种类型的关系IS_FRIENDFOLLOWS的。但是,当我尝试像条件语句:

CASE WHEN Type == "friend" THEN MERGE (u)<-[:IS_FRIEND]-(c) ELSE (u)<-[:FOLLOWS]-(c); 

我收到关于使用CASE

语法错误,有没有办法从这样的CSV使批量导入在有条件的关系?

有一个很好的博客文章在http://www.markhneedham.com/blog/2014/06/17/neo4j-load-csv-handling-conditionals/

技巧是基于您的条件基础上建立的集合基本上使用foreach。

+0

我的尴尬不知所终......我读了马克的博客很多......简直不敢相信我错过了这个。搜索引擎你失败了我!!!!!感谢您提供指针和快速解决方案。 – cwharland 2014-09-10 20:56:43