学习Neo4j几小时小结~将数据批量导入Neo4j数据库

您所在的位置:网站首页 导入数据库的几种方式是什么意思 学习Neo4j几小时小结~将数据批量导入Neo4j数据库

学习Neo4j几小时小结~将数据批量导入Neo4j数据库

2024-07-11 22:23| 来源: 网络整理| 查看: 265

这是目录 一、关于Neo4j二、安装Neo4j三、导入数据1、常见导入形式对比2、数据准备3、导入代码 四、几个简单的查询五、参考链接

一、关于Neo4j

Neo4j是一款强健的,可伸缩的高性能图数据库。

我是用它来可视化我的知识图谱的~ 下面是我整个可视化的过程,学习了一下午+一晚上搞定,记录本次流程,方便我以后使用~ 这是最后的效果截图 在这里插入图片描述

二、安装Neo4j

下载和安装Neo4j可以参考这篇文章的第一章:下载和安装Neo4j 1、安装Java JDK 2、下载Neo4j安装文件 3、创建系统环境变量

三、导入数据 1、常见导入形式对比

在这里插入图片描述 我这里为了方便,直接使用的是最后一种方式Neo4j-import,直接在cmd输入相应命令就可以导入了。相关命令以及操作在下面会提及到。 (据说python有相关的包py2neo,直接pip install py2neo就可以了)

2、数据准备

这里说下我本来拥有的数据格式是【实体1\t实体1类型\t关系\t实体2\t实体2类型】 但是这里批量导入希望我把所有的这些实体和关系分开,A实体的全部放入一个csv文件,B实体的全部放入一个csv文件,以及其他所有的实体,全部分开放入到不同的csv文件里面去,格式是【实体id,实体名】。注意这里的实体id必须是连续起来的,因为要确保唯一性。

对于关系,也是把A关系存为一个csv文件,B关系存为一个csv文件,以及其他的关系,格式是【实体1id,实体2id,关系名】,这里的实体1是起点实体的id号,这里的实体2是终点实体的id号,所以这也是之前为什么强调所有的实体id不能重复必须唯一的原因。 刚开始的文件 在这里插入图片描述 更改格式后的文件 在这里插入图片描述 在这里插入图片描述 注意事项

这里的每一个实体的csv(不包括关系)的 id 是连续起来的,必须确保唯一性这里csv文件里面的命名可以和这里一样,比如[id:ID,name]和[:START_ID,:END_ID,links],之前因为命名的问题出现过错误,虽然也不知道是否是因为命名的问题,但是这里还是注意下 3、导入代码

(1)在进行批量导入之前,请确保两件事情,一件是没有打开Neo4j服务(我这里只要登陆不上 http://127.0.0.1:7474/browser/ 就说明这个服务是关闭的),另一件事情就是确保path/data/databases/下没有你的数据库,因为批量导入是不能够直接插入数据的,而是直接全部重新生成。 (2)打开cmd(快捷键win+R ,输入cmd),进入到你安装neo4j的目录,我这里安装的目录路径是path\neo4j-community-3.4.1,目录长下面这样 在这里插入图片描述 进入bin目录下,输入你的命令就可以批量导入成功了,我的命令如下:

neo4j-import.bat --into ../data/databases/graph.db --id-type string --nodes:bingyin ../import/bingyin.csv --nodes:jianfeishipu ../import/jianfeishipu.csv --nodes:jianfeiyundong ../import/jianfeiyundong.csv --nodes:jibing ../import/jibing.csv --nodes:shiwu ../import/shiwu.csv --nodes:zhengzhuang ../import/zhengzhuang.csv --nodes:zhenliaoshouduan ../import/zhenliaoshouduan.csv --relationships:因果 ../import/yingguo_rel.csv --relationships:表现形式 ../import/biaoxianxingshi_rel.csv --relationships:治疗 ../import/zhiliao_rel.csv --relationships:包含 ../import/baohan_rel.csv --relationships:宜吃 ../import/yichi_rel.csv --relationships:忌吃 ../import/jichi_rel.csv

(PS:因为我全部写成一行了,因为在cmd端只能写成一行,所以编辑器显示的不好看明白,下面是我把每一条语句分行,给大家更清楚的展示) 在这里插入图片描述 注意事项

所有要批量导入的文件都要提前放入path\neo4j-community-3.4.1\import文件夹下,所以导入文件这里使用的是相对路径neo4j-import.bat --into …/data/databases/graph.db --id-type string的意思是导入数据库graph.db,该数据库一开始应该不存在,检查path\neo4j-community-3.4.1\data\databases下是否已经存在该数据库,有请删除–nodes:bingyin …/import/bingyin.csv 其中nodes表明导入的是节点, "bingying"指的是该节点的 label,也即该实体的实体类型,后面的.csv是导入的文件–relationships:治疗 …/import/zhiliao_rel.csv其中relationships指的是导入的是关系,"治疗"指的是该关系的名称以上所有的语句,用空格来隔开就好,放入cmd窗口时一起运行的

(3)以上命令输入之后,显示导入成功后,可以打开Neo4j服务器,同样是在cmd窗口下,在bin目录下,输入命令neo4j.bat console,OK之后,就可以用浏览器进入本地网址 http://localhost:7474/ 就可以看到你生成好的图数据库了。

四、几个简单的查询

1、直接点按钮进行查询。打开本地网址,如图右边所示,上面的Nodes是我导入的所有实体,下面的 Relationship 是我导入的所有实体关系,点击一个“宜吃”的实体关系,会出现右边第一幅图。双击实体,点击红色框的按钮,可以看到该实体的所有关系出来,比如“游泳”这个实体出现了一个“忌吃”的关系。 在这里插入图片描述 2、显示某个关系(比如"宜吃")下的所有实体联系

MATCH p=()-[r:`宜吃`]->() RETURN p

或者

MATCH p=(:jianfeishipu)-->(shiwu) RETURN p

3、显示某个类型(比如“疾病”)的所有实体

MATCH (n:jibing) RETURN n 五、参考链接

1、 我是参考这篇做成功的~Neo4j批量导入 2、Cypher查询入门 3、以及我没有用上的py2neo用法Py2neo使用指南 4、下载以及环境配置参考这篇文章和这篇文章



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3