将关系表导入NEO4J

时间:2015-12-02 18:45:44

标签: neo4j

我有一个CVS格式的关系表(A发送电子邮件给B)。如何将其导入NEO4J环境? 在CQL环境中应该有类似循环的东西。但我找不到。

1 个答案:

答案 0 :(得分:0)

请查看此处记录的LOAD CSV Cypher工具:http://neo4j.com/docs/stable/query-load-csv.html

如果您有一个代表(:Person)-[:SENDS_EMAIL_TO]->(:Person)的电子邮件地址的CSV文件,请执行以下操作:

"From","To"
"bob@loblaw.com","someone@else.com"
"someone@else.com","john@example.com"

您可以使用Cypher脚本将其导入Neo4j,如下所示:

LOAD CSV WITH HEADERS FROM "file:///path/to/file.csv" AS row
MERGE (from:Person {email: row.From})-[:SENT_EMAIL_TO]->(to:Person {email: row.To})

对于性能,首先在:Person(email)上创建唯一性约束:

CREATE CONSTRAINT ON (p:Person) ASSERT p.email IS UNIQUE;

然而,您可能希望使用更复杂的数据模型,具体取决于您的使用案例。如果您有电子邮件的内容/元数据,则应考虑将Email提取到节点中,因此数据模型看起来更像是:

(from:Person)-[:SENT]->(E:Email)-[:TO]->(to:Person)

然后,您可以在Email节点上存储电子邮件的元数据。