六、搭建基于知识图谱的农医对话系统
5.安装Neo4j图数据库
任务描述
在本任务中,主要学习Neo4j图数据库的基础知识、Neo4j的安装、Cypher语言、使用python代码操纵Neo4j,为接下来在Neo4j中搭建水稻疾病知识图谱打下基础。
知识点:Neo4j图数据库的基础知识、Neo4j图数据库的安装、Cypher语言、使用python代码操纵Neo4j
重 点:Cypher语言、使用python代码操纵Neo4j
难 点:Cypher语言、使用python代码操纵Neo4j
内 容:1. 开发准备:创建代码文件
2. Neo4j图数据库的基本介绍
3. 安装Neo4j图数据库
4. Cypher语言
5. 使用Python代码操控Neo4j
1. 开发准备
(1)创建代码文件
在Ai_Farmer_Doctor/test目录下新建1个python文件,命名为“for_neo4j.py”。
2. Neo4j图数据库的基本介绍
(1)简介
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。neo4j实现了专业数据库级别的图数据模型的存储. 与普通的图处理或内存级数据库不同, neo4j提供了完整的数据库特性, 包括ACID事物的支持, 集群支持, 备份与故障转移等。这使其适合于企业级生产环境下的各种应用。
(2)Neo4j中的基本元素
- 节点
节点(Node)是图数据库中的一个基本元素,用以表示一个实体记录,就像关系数据库中的一条记录一样。在 Neo4j 中节点可以包含多个属性(Property)和多个标签(Label),如下图所示:
下面介绍一个最简单的节点, 它只有一个属性,属性名是name , 属性值是Lily , 如下图所示。
- 关系
关系(Relationship)同样是图数据库中的基本元素。当数据库中已经存在节点后,需要将节点连接起来构成图。关系就是用来连接两个节点,关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系只能有一个类型(Type),如下图所示。
一个节点可以被多个关系指向或作为关系的起始节点,如下图所示多个关系指向同一节点。
关系必须有开始节点(Start node)和结束节点(End node),两头都不能为空,如下图所示。
节点可以被关系串联或并联起来,如下面两图所示。由于关系可以是有方向的,所以可在由节点、关系组成的图中进行遍历操作。
- 标签
标签被用在组节点到集, 节点能拥有多个标签, 使用标签能够快速高效地对节点分类并创建子图。
- 属性
节点和关系都可以有多个属性。节点和关系都是属性的容器,属性是由键值对组成的, 属性可以被索引和约束,属性名类似变量名,属性值类似变量值。属性值可以是基本的数据类型,或者由基本数据类型组成的数组。
3. 安装Neo4j图数据库
(1)安装java环境
安装neo4j之前,需要先安装java环境。在终端执行以下命令安装java11:
apt-get install openjdk-11-jdk -y
安装过程如下图所示:
安装完成后,输入以下命令查看是否安装成功:
java -version
能够输出版本信息,则表示安装成功,如下图所示:
(2)下载neo4j的安装包
从neo4j官网:https://neo4j.com/download-center/#community下载neo4j 4.4.12版本的安装包: