电影知识图谱demo(一)——neo4j的简单使用

一、导入数据

整体思路:使用csv格式导入

1.先把需要的数据制作成CSV格式,下载地址:百度云盘地址,提取码: j2ma

2.将这些csv文件移到neo4j项目的import文件夹下:

通过点击Open Folder找到import文件夹,然后移入

电影知识图谱demo(一)——neo4j的简单使用_第1张图片
电影知识图谱demo(一)——neo4j的简单使用_第2张图片

3.导入电影信息

LOAD CSV WITH HEADERS  FROM "file:///movie_movie.csv" AS line  
CREATE (p:movie{movieid:line.movieid,title:line.title,year:line.year,length:line.length,genres:line.genres,rate:line.rate,poster:line.poster,plot:line.plot,trailer:line.trailer}) 

4.导入演员信息

LOAD CSV WITH HEADERS  FROM "file:///movie_actor.csv" AS line  
CREATE (p:actor{actorid:line.actorid,name:line.name,photo:line.photo}) 

5.创建电影和演员的关系

LOAD CSV WITH HEADERS FROM "file:///movie_act.csv" AS line
MATCH (entity1:movie{movieid:line.movieid_id}), (entity2:actor{actorid:line.actorid_id})
CREATE (entity2)-[:ACTED_IN]->(entity1);

6.导入用户信息

本demo里用户的信息只有id

LOAD CSV WITH HEADERS  FROM "file:///user_user.csv" AS line  
CREATE (p:user{userid:line.id})  

7.导入用户对电影的评价信息

LOAD CSV WITH HEADERS FROM "file:///movie_popularity.csv" AS line
MATCH (entity1:user{userid:line.id}), (entity2:movie{movieid:line.movieid_id})
CREATE (entity1)-[:LIKE{ weight: line.weight }]->(entity2);


二、查询

  • 查询节点
  1. 查询整个图形数据库: MATCH(n) MATCH n;

  2. 查询具有指定Lable的节点 MATCH(n:movie) MATCH n;

    电影知识图谱demo(一)——neo4j的简单使用_第3张图片

  3. 查询电影名为Avatar的电影的节点: MATCH(n) WHERE n.title="Avatar" RETURN n;

电影知识图谱demo(一)——neo4j的简单使用_第4张图片
  • 查询关系

在Cypher中,关系分为三种:符号--,表示有关系,忽略关系的类型和方向;符号-->和<--,表示有方向的关系;

  1. 查询跟指定节点有关系的节点 MATCH(n)--(m:movie) RETURN n;
电影知识图谱demo(一)——neo4j的简单使用_第5张图片
  1. 查询有向关系的节点 MATCH (:actor { name: 'Sam Worthington' }) --> (n:movie) RETURN n;
电影知识图谱demo(一)——neo4j的简单使用_第6张图片
  1. 为关系命名,通过[r]为关系定义一个变量名,通过函数type获取关系的类型 MATCH (:actor { name: 'Sam Worthington' })-[r]->(n) RETURN r,type(r);
电影知识图谱demo(一)——neo4j的简单使用_第7张图片
  1. 查询特定的关系类型,通过[Variable:RelationshipType{Key:Value}]指定关系的类型和属性 MATCH (:user { userid: '6' })-[:LIKE]->(n:movie) RETURN n;
电影知识图谱demo(一)——neo4j的简单使用_第8张图片

你可能感兴趣的:(电影知识图谱demo(一)——neo4j的简单使用)