neo4j - 如何在 NEO4J 中创建友谊图
问题描述
我是 neo4j 的新手,正在尝试一些东西。我有两个 csv 文件:一个与人有关,一个与友谊关系。
我正在尝试创建人与人之间的友谊关系图,并且我还想做一些更新,例如:重命名人们的名字,更改友谊关系,最后我还想运行“谁是 Allen 的朋友”之类的查询。
people.csv
看起来像这样:id, name 1, Allen 2, John
friendship.csv
看起来像这样:TO, FROM Allen, John
我已经使用下面的代码加载了这些 csv:
LOAD CSV FROM 'file:///friendship.csv' AS line WITH line LIMIT 100 RETURN line
我发现了用于创建关系的不同代码,但我对它们感到困惑。
谁能告诉我如何从 csv 创建简单的友谊映射关系?之后如何使用neo4j添加更多关系?
解决方案
您是否阅读过这里的教程:https ://neo4j.com/developer/guide-importing-data-and-etl/ ?
一个简单的入门方法是,首先从 people.csv 创建节点(假设它们是唯一值,您可以使用 CREATE 而不是 MERGE),例如
CREATE (:Person {id:line.id, name:line.name})
根据您的情况,在人员姓名上设置索引。
CREATE INDEX ON :Person(name);
然后通过在friendship.csv 上运行LOAD CSV 并匹配先前创建的节点来创建关系
USING PERIODIC COMMIT
LOAD CSV FROM 'file:///friendship.csv' AS line WITH line
MATCH (to:Person {name: line.TO})
MATCH (from:Person {name: line.FROM})
MERGE (to)-[:FRIEND]->(from)
推荐阅读
- javascript - How to find all values of a specific key in an array of nested objects?
- python - 虽然我插入不同的字符串,但 str.format 打印相同的字符串
- java - 如何通知“书”类“页面”类已到达末尾,以便书可以翻到下一页?
- java - 为每个opengl点生成唯一且足够不同的颜色的方法
- ios - 在即将推出的 iPhone 发布之前从哪里获得 iOS 设备硬件字符串?
- android - 带有蓝牙 5 的 AltBeacon 库(信标可检测范围)
- html - 在 Bootstrap 中,如何将导航栏链接向右对齐?
- python - 在 python 中使用正则表达式从文本文件中提取特定字符串
- java - 为什么mousePress不做任何事情?
- javascript - Javascript - 函数,缺少参数