一、Neo4j 的安装与配置
由于Neo4j是基于JavaSE JDK 开发的图形数据库,所以本文以JDK11 和 Neo4j 4.x 为例,其他版本的方式步骤一致,需要注意的是JDK 和 Neo4j 的版本对应。
1、安装JDK
Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK。
配置 JDK环境,为以后能适应Springboot,请选择最低JDK1.8的环境。
【如果想安装多个JDK版本的可以点击这里进行查看】
1.1 下载JDK11
首先打开网页搜索甲骨文JDK,结果如下图1所示,点击红圈地址。
点击进入之后寻找JDK11的版本,选择windows系统,下载压缩包,如图2所示。若系统提醒输入甲骨文账号,自己到CSDN搜索甲骨文账号,有很多的共享账号。
下载完之后进行解压安装,选择合适的路径解压,我是在D盘里新建的文件夹,如图3所示:
1.2 JDK11 环境变量配置
下载完之后就要为JDK添加环境变量,点击此电脑,点击查看旁边的更多(即三个点)然后点击属性进入下一界面。具体操作如图4所示:
进入界面后点击此界面的高级系统设置,然后点击出现界面中的环境变量,如图5所示:
接下来可以在用户变量或者系统变量中进行操作,在用户变量里点击新建,变量名输入JAVA_HOME,变量值为解压的地址,建完点击确定。如图6所示:
然后点击用户变量里的Path,新建写入%JAVA_HOME%\bin,点击确定。看图7如下:
完成环境变量的配置之后,验证是否安装成功,win+R打开cmd,在cmd运行命令行,输入java -version,出现JDK版本号即为配置成功,如图8所示:
2、下载Neo4j
注意
: 由于Neo4j是基于JAVA的JDK开发的 ,所以下载时必须使用当前JDK版本的Neo4j安装包最低 JDK1.8 对应 Neo4j 3.x 的,JDK 11 对于 Neo4j 4.x ,JDK17 对应 Neo4j 5.x
, 依此类推 …
官网下载地址:https://neo4j.com/download-center
国内镜像地址(所有版本都有):https://we-yun.com/doc/neo4j/
2.1、最新版本下载(社区版)
2.2、国内网址下载
2.3、最新桌面版本下载
虽然这个操作会简单很多,但开发人员建议下载上面的服务版的,适合开发和拓展 , 桌面版比较适合非开发人员使用
。
3、Neo4j 安装 与 环境配置
3.1 Neo4j 服务版
1、下载好之后,直接解压到合适的路径就可以了,无需安装。
2、我的电脑–>属性—>高级系统设置–>环境变量–>新建
3、在path路径中将变量添加进去
3.2 Neo4j 桌面版
官网桌面版安装指南:https://neo4j.com/download-thanks-desktop/?edition=desktop&flavour=winstall64&release=1.5.7&offline=true
第 1 步:激活
1、在您的计算机上,找到您刚刚下载的文件,然后双击以开始安装。
2、将激活复制并粘贴到本页顶部的Neo4j桌面的“激活密钥”框中 或者,您也可以通过填写右侧的表单从应用程序内生成密钥。
由于版权问题,详情请跳转官方地址查看
步骤 2:创建数据库
激活后,单击“新图形”按钮。从选项中选择“创建局部图形” 提出。
接下来,在字段中输入“数据库名称”和“密码”,然后单击“创建”按钮。
步骤 3:启动数据库
创建数据库后,单击“开始”按钮。
打开 Neo4j 浏览器
第 1 步:启动 Neo4j 浏览器
数据库启动后,单击“管理”按钮。
在下一个屏幕上,找到屏幕顶部的“打开浏览器”并单击它。这将打开 Neo4j 浏览器 在新窗口中。
步骤 2:浏览示例数据集
Neo4j Desktop附带两个示例数据集。您可以使用以下命令运行它们
:play movie graph和:play northwind graph
4、Neo4j 验证 、 启动 与 服务注册
下面示例以服务版为主,桌面版可以跳过
4.1、Neo4j 服务的配置验证 与启动
1、win+r 打开cmd 键入 neo4j.bat console
出现下面的界面 表示安装成功
如果JDK版本和安装的Neo4J 版本不一致就会出现下面的报错。
2、用浏览器打开网址http://localhost:7474/
,初始账户信息:用户名和密码都是neo4j
注意:第一次使用需要修改密码
下面截图是修改后的
4.2、Neo4j 服务的注册
1、win+r 打开cmd 键入 neo4j install-service
neo4j install-service
二、Neo4j 的使用 与命令
1.1、导入并创建节点数据
load csv from "file:///product_ratings_data.csv" as line
create (:product_ratings { UserID:line[0],Product:line[1],Ratings:line[2]})
1.2、创建一个人物节点
CREATE (n:Person {name:'John'}) RETURN n
CREATE是创建操作,Person是标签,代表节点的类型。花括号{}代表节点的属性,属性类似Python的字典。这条语句的含义就是创建一个标签为Person的节点,该节点具有一个name属性,属性值是John。
2、继续来创建更多的人物节点,并分别命名
CREATE (n:Person {name:'Sally'}) RETURN n;
CREATE (n:Person {name:'Steve'}) RETURN n;
CREATE (n:Person {name:'Mike'}) RETURN n;
CREATE (n:Person {name:'Liz'}) RETURN n;
CREATE (n:Person {name:'Shawn'}) RETURN n;
3、创建地区节点
CREATE (n:Location {city:'Miami', state:'FL'});
CREATE (n:Location {city:'Boston', state:'MA'});
CREATE (n:Location {city:'Lynn', state:'MA'});
CREATE (n:Location {city:'Portland', state:'ME'});
CREATE (n:Location {city:'San Francisco', state:'CA'});
如图所示,共有6个人物节点、5个地区节点,Neo4J贴心地使用不用的颜色来表示不同类型的节点。
4、接下来创建关系
MATCH (a:Person {name:'Liz'}), (b:Person {name:'Mike'})
MERGE (a)-[:FRIENDS]->(b)
这里的方括号[]即为关系,FRIENDS为关系的类型。注意这里的箭头 -->是有方向的,表示是从a到b的关系。 如图,Liz和Mike之间建立了FRIENDS关系,通过Neo4J的可视化很明显的可以看出:
5、关系也可以增加属性
MATCH (a:Person {name:'Shawn'}), (b:Person {name:'Sally'})
MERGE (a)-[:FRIENDS {since:2001}]->(b)
在关系中,同样的使用花括号{}来增加关系的属性,也是类似Python的字典,这里给FRIENDS关系增加了since属性,属性值为2001,表示他们建立朋友关系的时间。
6、接下来增加更多的关系
MATCH (a:Person {name:'Shawn'}), (b:Person {name:'John'}) MERGE (a)-[:FRIENDS {since:2012}]->(b);
MATCH (a:Person {name:'Mike'}), (b:Person {name:'Shawn'}) MERGE (a)-[:FRIENDS {since:2006}]->(b);
MATCH (a:Person {name:'Sally'}), (b:Person {name:'Steve'}) MERGE (a)-[:FRIENDS {since:2006}]->(b);
MATCH (a:Person {name:'Liz'}), (b:Person {name:'John'}) MERGE (a)-[:MARRIED {since:1998}]->(b);
7、然后,建立不同类型节点之间的关系-人物和地点的关系
MATCH (a:Person {name:'John'}), (b:Location {city:'Boston'}) MERGE (a)-[:BORN_IN {year:1978}]->(b)
这里的关系是BORN_IN,表示出生地,同样有一个属性,表示出生年份。
如图,在人物节点和地区节点之间,人物出生地关系已建立好。
8、同样建立更多人的出生地
MATCH (a:Person {name:'Liz'}), (b:Location {city:'Boston'}) MERGE (a)-[:BORN_IN {year:1981}]->(b);
MATCH (a:Person {name:'Mike'}), (b:Location {city:'San Francisco'}) MERGE (a)-[:BORN_IN {year:1960}]->(b);
MATCH (a:Person {name:'Shawn'}), (b:Location {city:'Miami'}) MERGE (a)-[:BORN_IN {year:1960}]->(b);
MATCH (a:Person {name:'Steve'}), (b:Location {city:'Lynn'}) MERGE (a)-[:BORN_IN {year:1970}]->(b);
9、至此,知识图谱的数据已经插入完毕,可以开始做查询了。
我们查询下所有在Boston出生的人物
MATCH (a:Person)-[:BORN_IN]->(b:Location {city:'Boston'}) RETURN a,b
10、查询所有对外有关系的节点
MATCH (a)-->() RETURN a
注意这里箭头的方向,返回结果不含任何地区节点,因为地区并没有指向其他节点(只是被指向)
11、查询所有有关系的节点
MATCH (a)--() RETURN a
12、查询所有对外有关系的节点,以及关系类型
MATCH (a)-[r]->() RETURN a.name, type(r)
13、查询所有有结婚关系的节点
MATCH (n)-[:MARRIED]-() RETURN n
14、创建节点的时候就建好关系
CREATE (a:Person {name:'Todd'})-[r:FRIENDS]->(b:Person {name:'Carlos'})
15、查找某人的朋友的朋友
MATCH (a:Person {name:'Mike'})-[r1:FRIENDS]-()-[r2:FRIENDS]-(friend_of_a_friend) RETURN friend_of_a_friend.name AS fofName
返回Mike的朋友的朋友:
16、增加/修改节点的属性
MATCH (a:Person {name:'Liz'}) SET a.age=34;
MATCH (a:Person {name:'Shawn'}) SET a.age=32;
MATCH (a:Person {name:'John'}) SET a.age=44;
MATCH (a:Person {name:'Mike'}) SET a.age=25;
这里,SET表示修改操作
17、删除节点的属性
MATCH (a:Person {name:'Mike'}) SET a.test='test'
MATCH (a:Person {name:'Mike'}) REMOVE a.test
删除属性操作主要通过 REMOVE
18、删除节点
MATCH (a:Location {city:'Portland'}) DELETE a
除节点操作是 DELETE文章来源:https://www.toymoban.com/news/detail-460164.html
19、删除有关系的节点
MATCH (a:Person {name:'Todd'})-[rel]-(b:Person) DELETE a,b,rel
20、删除数据库中的图
MATCH (n) DETACH DELETE n
这里,MATCH 是匹配操作,而小括号() 代表一个节点node(可理解为括号类似一个圆形),括号里面的n为标识符。
文章来源地址https://www.toymoban.com/news/detail-460164.html
到了这里,关于Noe4J 超级详细的安装与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!