1、先准备数据,数据文件为.csv类型。如Movielens的数据集,本次实验下载的是1m数据集下载地址:
http://grouplens.org/datasets/movielens/
Movielens 1m数据集中有三个表格,都是.dat格式,需要转换成csv文件,可以在excel表格中对.dat格式数据进行分列处理,后另存为csv文件。
2、在neo4j安装根路径下找到import之后在此文件夹下放入数据。
3、在neo4j中导入数据并创建节点,如果数据量过大,可用USING PERIODIC COMMIT 500,防止数据过大溢出,with headers可以处理含有头文件的数据。
load csv with headers from "file:///ratings.csv" as link
with link
create(:Ratings{userId:link.userId,movieId:link.movieId,rating:link.rating,
timestamp:link.timestamp
})
4、创建节点之间的关系
LOAD CSV WITH HEADERS FROM "file:///ratings.csv" AS row
MATCH (m:Movies), (u:Users)
WHERE u.userId = row.userId AND m.movieId = row.movieId
CREATE (u)-[r:rating{value:row.rating}]->(m)
如何快速删除Neo4j中数量级较大的数据(该方法是清楚数据库中所以的数据):
-
关闭Neo4j服务器进程:
命令:neo4j stop -
删除graph.db数据库文件:
找到<NEO4J_HOME>/data/databases/路径,可以看到graph.db文件夹。删除此文件夹即可。 -
重新启动Neo4j服务器:
通过bin目录下执行如下命令启动Neo4j:/neo4j console
导入csv数据时,如何将属性的String类型转换成int类型:
//导入节点 电影类型 == 注意类型转换
LOAD CSV WITH HEADERS FROM "file:///genre.csv" AS line
MERGE (p:Genre{gid:toInteger(line.gid),name:line.gname})