在学习neo4j之前,我们了解下什么是图数据库:
在计算机科学中,图数据库(英语:graph database,GDB)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。
GDB关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。这些关系允许直接将存储区中的数据链接在一起,并且在许多情况下,可以通过一个操作进行检索。图数据库将数据之间的关系作为优先级。查询图数据库中的关系很快,因为它们永久存储在数据库本身中。可以使用图数据库直观地显示关系,使其对于高度互连的数据非常有用。
图数据库是一种非关系型数据库,以解决现有关系数据库的局限性。图模型明确地列出了数据节点之间的依赖关系,而关系模型和其他NoSQL数据库模型则通过隐式连接来链接数据。
图数据库从设计上,就是可以简单快速地检索难以在关系系统中建模的复杂层次结构的。图数据库与20世纪70年代的网络模型数据库相似,它们都表示一般的图,但是网络模型数据库在较低的抽象层次[3]上运行,并且不能轻松遍历一系列边。
常见的GDB:
接下来我们学习下GDB中的元老 Neo4j
PB级别的极速图库凭借经过验证的万亿+实体性能,开发人员、数据科学家和企业将 Neo4j 作为高性能、可扩展分析、智能应用程序开发和高级 AI/ML 管道的首选。
一、本地部署安装(Docker):
# 查询镜像
docker search neo4j

# 拉取镜像
docker install neo4j:5.6.0
# 创建data、logs等文件夹
cd /home
mkdir neo4j
cd neo4j
mkdir data
mkdir logs
mkdir plugins
mkdir config
# 运行
docker run -d --name neo4j -p 7474:7474 -p 7687:7687 
-v /home/neo4j/data:/data -v /home/neo4j/logs:/logs 
-v /home/neo4j/conf:/var/lib/neo4j/conf 
-v /home/neo4j/import:/var/lib/neo4j/import 
-v /home/neo4j/plugins:/plugins 
--env NEO4J_AUTH=neo4j/neo4j123 neo4j:5.6.0
# 查看容器
docker ps
 
浏览器访问:http://localhost:7474/browser/

输入username和密码,登录成功

运行Hello World:

二、Neo4j语法
使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大,由于Neo4j在图形数据库家族中处于绝对领先的地位,拥有众多的用户基数,使得Cypher成为图形查询语言的事实上的标准。
CQL:
- Neo4j图形数据库的查询语言。
 - 一种声明性模式匹配语言
 - 遵循SQL语法。
 - 语法非常简单且人性化、可读的格式。
 
常用命令:

三、插件集成
Neo4j自身内置函数有限,所以此处我们引入APOC:
APOC代表Awesome Procedures on Cypher。在发布APOC之前,开发人员需要编写自己的过程和函数,以实现Cypher或Neo4j数据库尚未实现的常见功能。每个开发人员可能会编写自己的这些函数版本,从而导致大量重复。Neo4j 3.x 引入了用户定义过程和函数的概念。 这些是某些功能的自定义实现,不能(轻易)用 Cypher 本身表达。 它们是用 Java 实现的,可以轻松部署到您的 Neo4j 实例中,然后直接从 Cypher 调用。从 5.0 开始,APOC 已被拆分为单独的存储库,其中一个是主要的、官方支持的 APOC 库。 另一个属于 APOC Extended。 这个存储库处理 APOC 的扩展部分。Extended APOC 库中有超过 150 个不同的过程和函数。 他们的目的是增加数据集成、图形算法和数据转换等领域的功能。
neo4j官方提供了多种安装配置方式:
- Neo4j Desktop配置,先创建数据库,然后在”Mange“窗口选中”plugins“, 插件窗口中选择”AOPC“,然后安装
 
- 服务器部署配置
 
根据neo4j选择对应的APOC版本【敲黑板】
下载配置release jar,并放到指定文件下 $NEO4J_HOME/plugins
最后,重新启动neo4j服务
- Docker配置
 
Neo4j支持指定docker环境变量来配置APOC
指定目录下创建plugins文件夹
# 指定目录下创建plugins文件夹 mkdir plugins # 下载apoc jar包 wget https://github.com/neo4j/apoc/releases/download/5.6.0/apoc-5.6.0-core.jar
APOC配置成功后,重新访问Neo4j服务 http://localhost:7474/browser/
输入命令 return apoc.verison()
输入命令 call apoc.help("apoc")
APOC支持很多种过程(Procedures)和函数(Functions),官方提供了详细的wiki说明,大家按需学习,慢慢啃
参考链接:
- https://neo4j.com/
 - https://github.com/neo4j/apoc
 - https://zhuanlan.zhihu.com/p/538291196
 
