neo4j导入csv文件

1、我有两个节点,分别是Person和 Moive,有 Person-:ACTED_IN->Moive (ACTED_IN是参演关系,表示某个人参演了某个电影),Person-:DIRECTED->Moive (DIRECTED表示是执导关系,表示某个人执导了某部电影),Person-:REVIEWED->Moive (REVIEWED是编剧关系,表示某个人是某部电影的编剧),Person-:FOLLOWS->Person(FOLLOWS是关注关系,表示某个人关注了另一个人)

2、首先导入Node节点的csv文件,首先 csv文件必须要放在 neo4j安装目录的import文件夹下

bash 复制代码
LOAD CSV WITH HEADERS FROM 'file:///person.csv' AS row
CREATE (n:Person {personId:row.personId ,name: row.name, born: toInteger(row.born)})


LOAD CSV WITH HEADERS FROM 'file:///movie.csv' AS row
CREATE (n:Movie {movieId:row.movieId,title: row.title, votes: toInteger(row.votes),tagline:row.tagline,released:toInteger(row.released)})

我本地的数据路径如下

3、导入关系文件

bash 复制代码
//参演
LOAD CSV WITH HEADERS FROM 'file:///r_ACTED_IN_person_2_moive.csv' AS row
MATCH (p:Person {name: row.`:START_ID`})
MATCH (m:Movie {tagline: row.`:END_ID`})
MERGE (p)-[r:ACTED_IN]->(m)
SET r.roles = row.roles

//指导
LOAD CSV WITH HEADERS FROM 'file:///r_DIRECTED_person_2_moive.csv' AS row
MATCH (p:Person {name: row.`:START_ID`})
MATCH (m:Movie {tagline: row.`:END_ID`})
MERGE (p)-[r:DIRECTED]->(m)

//REVIEWED 编剧
LOAD CSV WITH HEADERS FROM 'file:///r_REVIEWED_person_2_movie.csv' AS row
MATCH (p:Person {name: row.`:START_ID`})
MATCH (m:Movie {tagline: row.`:END_ID`})
MERGE (p)-[r:REVIEWED]->(m)
SET r.summary = row.summary ,r.rating = row.rating

//关注
LOAD CSV WITH HEADERS FROM 'file:///r_FOLLOWS_person_2_person.csv' AS row
MATCH (p:Person {name: row.`:START_ID`})
MATCH (m:Person {name: row.`:END_ID`})
MERGE (p)-[r:FOLLOWS]->(m)

3、导入完成后,可以看到如下

4、如果想导出可以直接执行的csv文件,首先要先写match语句,如下(适合数据量不大的情况)

bash 复制代码
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie)
RETURN 
     p.name AS `:START_ID`, 
     'ACTED_IN' AS `:TYPE`, 
     m.tagline AS `:END_ID`, 
     r.roles AS roles

MATCH (p:Person)-[r:DIRECTED]->(m:Movie)
RETURN 
     p.name AS `:START_ID`, 
     'DIRECTED' AS `:TYPE`, 
     m.tagline AS `:END_ID` 

MATCH (p:Person)-[r:REVIEWED]->(m:Movie)
RETURN 
     p.name AS `:START_ID`, 
     'REVIEWED' AS `:TYPE`, 
     m.tagline AS `:END_ID`,
     r.summary as summary,
     r.rating as rating

MATCH (p:Person)-[r:FOLLOWS]->(m:Person)
RETURN 
     p.name AS `:START_ID`, 
     'FOLLOWS' AS `:TYPE`, 
     m.name AS `:END_ID`
相关推荐
码农学院2 天前
Neo4j知识图谱赋能跨境电商GEO:LLM实体识别与AI搜索引擎结构化数据输出实战
人工智能·知识图谱·neo4j
TE-茶叶蛋2 天前
RAG智能电商客服什么时候上Neo4j?
neo4j
羊羊小栈2 天前
基于GraphRAG的税务财务智能问答系统(Neo4j_大语言模型)
人工智能·算法·语言模型·自然语言处理·毕业设计·neo4j·大作业
hhzz4 天前
(九)在MCU上跑AI推理:ESP-DL vs TFLite Micro,选哪个?怎么优化?
人工智能·单片机·neo4j·esp·ai推理
༄沐࿆风࿆࿆4 天前
neo4j Desktop下载学习笔记
笔记·学习·neo4j
我是唐青枫4 天前
Java Neo4j 实战指南:从图模型、Cypher 到 Spring Boot 关系查询
java·spring boot·neo4j
AI-好学者9 天前
RDF对比与Neo4j性能优化
人工智能·知识图谱·neo4j·knowledge graph
冷小鱼14 天前
Neo4j 深度解析:从原生图存储到 GraphRAG 的知识图谱革命
人工智能·知识图谱·neo4j
24计网1王仔寿18 天前
Linux运维与云计算全栈系统化学习指南(Shell+虚拟化+OpenStack+Docker+公私云实战)
linux·课程设计·数据库开发·微信公众平台·neo4j·命令模式·sequoiadb
羊羊小栈1 个月前
基于GraphRAG的医疗健康知识诊断系统(Neo4j_大语言模型)
人工智能·语言模型·毕业设计·知识图谱·创业创新·neo4j·大作业