Neo4j 的使用说明(基于V3.4.9)php
1、Neo4j简介html
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具有彻底的事务特性的Java持久化引擎,可是它将结构化数据存储在网络(从数学角度叫作图)上而不是表中。git
Neo4j也能够被看做是一个高性能的图引擎,该引擎具备成熟数据库的全部特性。程序员工做在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——可是他们能够享受到具有彻底的事务特性、企业级的数据库的全部好处。(摘自百度百科)程序员
Neo4j当前有:Enterprise Server, Community Server github
当前的最新稳定版为3.4.9数据库
同时也提供了桌面操做管理工具:Neo4j Desktop(须要激活码)编程
2、Neo4j的安装浏览器
因条件限制以在win10 上安装Community Server 为例网络
一、官网下载编程语言
相应版本https://neo4j.com/download-center/#releases
速度可能会较慢;
( 下载页面提示默认的用户名和密码均为neo4j )
可到http://we-yun.com/index.php/blog.html 找到网盘地址
可能不会是最新版
二、下载完成后,解压便可
若是为了方便更改dbms.directories.data的值,不建议进行安装环境变量;dbms.directories.data 后面介绍
三、启动neo4j
在neo4j 的目录下面打开cmd, 输入neo4j.bat console
出现下图则启动成功
最后一行的警告是经过浏览器访问localhost:7474 的输出日志信息,具体的缘由尚不清楚,但目前并不影响正常使用
当关闭该cmd 窗口时,neo4j 服务也会关闭;所以可经过下面操做将其安装为服务。
非最新版或非官网下载可能会出现安装失败;
解决方案可参考https://blog.csdn.net/weixin_42103075/article/details/80473283
所以建议从官网下载最新稳定版
卸载服务使用 neo4j uninstall-service
如下相关的服务操做 bin\neo4j start
bin\neo4j stop
bin\neo4j restart
bin\neo4j status
也可以使用win10自带的服务管理界面来进行启动等操做
四、经过localhost:7474访问
会出现下面界面(首次会出现登陆页面)
五、测试:建立、查询和删除一个节点
建立一个标签为Person的节点,其有属性 name 和age
查询一个节点
删除一个节点
上述仅仅是简单的建立、查询和删除节点的Cypher 语句;
详情请查阅相关的Cypher文档
六、测试:建立、查询和删除关系
1)先建立三个节点:
create(:Person{name:"a"}),(:Person{name:"b"}),(:Person{name:"c"})
2)为其中的两个顶点添加边:
match (n:Person{name:"a"}),(m:Person{name:"b"})
create (n)-[:R{type:"朋友"}]->(m)
或:match(n),(m) where n.name=”a” and m.name=”b”
create (n)-[:R{type:"朋友"}]->(m)
其基本思想是先找到要添加边的两个顶点,再为其建立边
上述两种方式是有缺陷的,由于有可能查出来不止一个节点,那么就会为许多匹配的节点都添加边
上图出现了警告
所以通常咱们再建立新节点的时候就要建立边
例如:
create (n:Person{name:"d"}),(m:Person{name:"e"})
create (n)-[:R{type:"父子"}]->(m)
或:create (n:Person{name:"f"})-[r:R{type:"朋友"}]->(m:Person{name:"g"})
使用 return 语句,返回建立结果视图
3)删除关系(包含关系的查询)
match (n:Person{name:"f"})-[r:R{type:"朋友"}]->(m:Person{name:"g"}) delete r [该方式已过期不推荐使用]或
match p=(n:Person{name:"d"})-[:R*1..2]->(m:Person{name:"e"})
delete p [推荐使用该语句]
说明:
第二条里面的*1..2 查询的路径长度,最小为1,最大为2的关系为R的路径
在删除关系以前要先查询到该关系;
上述是简单的Cypher实现,固然还有其它写法;
可参考官方文档学习 :
https://neo4j.com/docs/developer-manual/current/cypher/
七、基本的思想
Cypher 语句是Neo4j图形数据库的查询语言
基本思想须要掌握的是:顶点的表示 (n)
关系(边)的表示 (n)-[r]->(m)
这里的n r m能够看做是变量
详细的语法可参考
https://neo4j.com/docs/developer-manual/current/cypher/syntax/patterns/#cypher-pattern-varlength
Cypher 内容丰富,与SQL 相似,一样包含诸多函数等;基本上能知足各类需求。因时间关系,未能一一学习了解
3、Neo4j的使用方式
4、基于Neo4j Native Java API 的应用介绍
相关代码放在https://github.com/infoo/Neo4j
一、使用Java Api 进行相关的增删改查操做
若无可视化需求,能够在不安装neo4j server 的状况下使用Neo4j,只须要导入Neo4j的jar包便可
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.4.9</version>
</dependency>
二、使用Java Api 执行 Cypher语句进行相关的增删改查操做