我有一个CVS格式的关系表(A发送电子邮件给B)。如何将其导入NEO4J环境? 在CQL环境中应该有类似循环的东西。但我找不到。
答案 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
节点上存储电子邮件的元数据。