在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_FRIEND
和FOLLOWS
的。但是,当我尝试像条件语句:
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。
我的尴尬不知所终......我读了马克的博客很多......简直不敢相信我错过了这个。搜索引擎你失败了我!!!!!感谢您提供指针和快速解决方案。 – cwharland 2014-09-10 20:56:43