参考资料:neo4j 教程_w3cschool
Springboot集成Neo4j_喝醉的咕咕鸟的博客-CSDN博客
SpringBoot 整合 Neo4j_springboot neo4j_$懒小猿$的博客-CSDN博客
图数据库Neo4j实战(全网最详细教程)_neo4j使用教程_星川皆无恙的博客-CSDN博客
代码片段_知识图谱Neo4j Cypher查询语言详解
Windows安装
1、桌面版安装
下载地址:Neo4j Desktop Download | Free Graph Database Download
输入个人信息后,会有一个激活码,保存下来,后面要用!
直接默认安装,安装位置可改,第一次打开时会让你输入刚刚获取到的激活码。
2、zip安装
下载地址:Neo4j Deployment Center - Graph Database & Analytics
(此处下载是community版)
下载完成后,将压缩包解压到一个文件夹中
环境配置
新建变量名写:NEO4J_HOME, 变量值为刚刚的文件夹路径;
Path后面添加上路径:%NEO4J_HOME%\bin。
启动
在bin路径下打开cmd,输入:neo4j.bat console
出现以下为成功
若启动时JDK版本报错,可以安装指定版本JDK,并需要改下bin目录下的neo4j.bat, 把set "JAVA_HOME=XXXX"加入进去
访问数据
在浏览器中输入:http://localhost:7474/
Username是 neo4j (这个用户名好像是不可以修改的)
Password默认是neo4j,zip版本第一次进入会提示你修改。
参考
篇一:Neo4j图形数据库的安装与环境配置(普通版与Desktop版)_neo4j desktop和neo4j区别_小赵de碎星采摘馆的博客-CSDN博客
图数据库Neo4j下载、安装_neo4j3.5下载_Golden-Star的博客-CSDN博客
Window下Neo4j安装教程
介绍
图是一组节点和连接这些节点的关系。图形数据存储在节点和关系在属性的形式。属性是键值对表示数据。Neo4j图数据库主要有以下组成元素:节点、属性、关系、标签
节点
节点(Node)是图数据库中的一个基本元素,用来表示一个实体记录。
1、节点是主要的数据元素,节点通过关系连接到其他节点。节点可以具有一个或多个属性(即,存储为键/值对的属性)。
2、节点有一个或多个标签,用于描述其在图表中的作用。
属性
属性(Property)是用于描述图节点和关系的键值对。
1、属性是命名值,其中名称(或键)是字符串属性可以被索引和约束
2、可以从多个属性创建复合索引
关系
关系(Relationship)同样是图数据库的基本元素。关系就是用来连接两个节点,,其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系只能有一个类型(Type) 。
1、关系连接两个节点关系是方向性的节点可以有多个甚至递归的关系。
2、关系可以有一个或多个属性(即存储为键/值对的属性)
3、基于方向性,Neo4j关系被分为两种主要类型:单向关系、双向关系
标签
标签(Label)将一个公共名称与一组节点或关系相关联, 节点或关系可以包含一个或多个标签。 我们可以为现有节点或关系创建新标签, 我们可以从现有节点或关系中删除标签。
1、标签用于将节点分组一个节点可以具有多个标签对标签进行索引。
2、以加速在图中查找节点本机标签索引针对速度进行了优化。
cyher
Neo4j的操作语言称为cyher,相当于关系数据库sql。
节点
Cypher 采用一对圆括号 () 来表示节点,如 (n:角色) 表示一个 角色 节点,n 是变量名,供命令执行时用 n 来访问这个节点,在命令执行完毕后就无法使用了。同时单独的 () 表示一个匿名节点,在匹配时表示匹配所有节点。
属性
(n:角色{name:'郭靖'}) ,{}中包含的name:'郭靖'就为一组属性键值对。
关系
--
表示无方向的关系
-->
表示有方向的关系
-[r]->
则给关系赋予一个变量名r,方便对这个关系进行操作
-[r:配偶]->
匹配关系为 配偶
的类型
关系路径长度匹配
在关系中,允许匹配特定路径长度的内容,如:
(n)-[*2]->(m)
表示关系数量为 2 的 3 个节点的匹配, 等价于(a)-[]->()-[]->(b)
(n)-[*2..4]->(m)
匹配路径长度为 2 到 4 之间的路径(n)-[*2..]->(m)
匹配路径长度大于 2 的路径(n)-[*..4]->(m)
匹配路径长度小于 4 的路径(n)-[*]->(m)
匹配任意长度的路径
列表
Cypher 支持列表操作,通过 [] 来创建列表。
语法
cypher语法请参考:Cypher Cheat Sheet - Neo4j Documentation Cheat Sheet
CREATE
我们应该使用此标签名称来访问节点详细信息。
MERGE 命令是 CREATE 命令和 MATCH 命令的组合。 MERGE 在图中搜索给定模式,如果存在,则返回结果,如果不存在,则创建并返回结果。
1、创建一个没有属性的节点
CREATE (节点名称:节点标签名称)
2、创建一个有属性的节点
CREATE (节点名称:节点标签名称{ 属性名称1:属性值,属性名称2:属性值,属性名称3:属性值 })
3、创建两个节点和关系属性
CREATE(节点名称1:节点标签名称1{属性})-[关系名称:关系标签名称{属性}]->(节点名称2:节点标签名称2{属性})
MATCH
MATCH 命令用于从数据库中获取节点,关系的信息,类似于 SQL 中的 SELECT。RETURN 则是在 MATCH 搜索完成后返回数据,因此 MATCH 必须与 RETURN 同时使用。
ptional match 类似于 match,不同之处在于 optional match 在匹配不到内容时返回 null 方便查询继续进行,而 match 直接返回查询无结果
1、获取有关节点
match (变量名:节点的标签名称) return n
MATCH (变量名:节点的标签名称 {属性名称1:属性值,属性名称2:属性值}) RETURN 变量名
2、使用两个现有节点:节点标签名称1和节点标签名称2创建与属性的关系
MATCH (变量名1:节点标签名称1),(变量名2:节点标签名称2)
CREATE (变量名1)-[关系名称:关系标签名称{属性}]->(变量名2)
RETURN 关系名称
RETURN
RETURN 变量名,变量名.属性名称1
WHERE
WHERE 可以结合函数 exists() ,字符串匹配 starts with,ends with,contains,逻辑匹配 in,not,and,or 和正则表达式匹配进行更加精细的匹配,正则表达式的语法为 =~ 'regexp'。
where 变量名.属性名称=属性值
DELETE
从数据库永久删除节点及其关联的属性。
DELETE 变量名列表
REMOVE
删除节点或关系的标签或属性
DELETE 变量名.属性名称
DELETE 变量名.标签名称
例如:
match (n:角色) where n.name='金轮法王' remove n.from return n
match (n:角色)-[r]-() where n.name='金轮法王' delete n,r
清空数据库:match (n) optional match (n)-[r]-() delete n,r
SET
用于给现有节点或关系添加新属性,因此,SET 需要配合 MATCH 使用。
SET 变量名.属性名= 属性值
例如:match (n:角色) where n.name='杨过' set n.nickname='西狂' return n