一、導入數(shù)據(jù)
整體思路:使用csv格式導入
1.先把需要的數(shù)據(jù)制作成CSV格式渗稍,下載地址:百度云盤地址,提取碼: p3yn
2.將這些csv文件移到neo4j項目的import文件夾下:
通過點擊Open Folder
找到import文件夾秸滴,然后移入
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.創(chuàng)建電影和演員的關(guān)系
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);
二究孕、查詢
- 查詢節(jié)點
查詢整個圖形數(shù)據(jù)庫:
MATCH(n) RETURN n;
-
查詢具有指定Lable的節(jié)點
MATCH(n:movie) RETURN n;
查詢電影名為Avatar的電影的節(jié)點:
MATCH(n) WHERE n.title="Avatar" RETURN n;
- 查詢關(guān)系
在Cypher中,關(guān)系分為三種:符號--仔拟,表示有關(guān)系,忽略關(guān)系的類型和方向岔绸;符號-->和<--理逊,表示有方向的關(guān)系橡伞;
- 查詢跟指定節(jié)點有關(guān)系的節(jié)點
MATCH(n)--(m:movie) RETURN n;
- 查詢有向關(guān)系的節(jié)點
MATCH (:actor { name: 'Sam Worthington' }) --> (n:movie) RETURN n;
- 為關(guān)系命名盒揉,通過[r]為關(guān)系定義一個變量名,通過函數(shù)type獲取關(guān)系的類型
MATCH (:actor { name: 'Sam Worthington' })-[r]->(n) RETURN r,type(r);
- 查詢特定的關(guān)系類型兑徘,通過[Variable:RelationshipType{Key:Value}]指定關(guān)系的類型和屬性
MATCH (:user { userid: '6' })-[:LIKE]->(n:movie) RETURN n;