使用 Docker Desktop 安装 Neo4j 知识图谱

一、简介

Neo4j是一个高性能的,基于java开发的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中;它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。

Neo4j分为企业版和社区版,企业版可以创建多个数据库,链接多个数据库,但是收费……;社区版只能链接一个数据库,所以社区版不支持创建数据库命令。

Neo4j部署后默认创建名字为 neo4j 的数据库,可以直接链接这个数据库。

在这里插入图片描述

二、使用 Docker 安装 Neo4j

官网文档:https://neo4j.com/docs/
官网下载地址:https://neo4j.com/download-center
国内镜像地址(所有版本都有):https://we-yun.com/doc/neo4j/

1、安装 Docker Desktop

请看这里:Docker Desktop 安装使用教程

2、使用 Docker Desktop 安装 Neo4j 镜像

在这里插入图片描述

# 拉取 Neo4j 镜像
docker pull neo4j:5.26.2

在这里插入图片描述

# 启动 并 设置 neo4j 挂载
docker run -it -d -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:/var/lib/neo4j/plugins -e NEO4J_AUTH=neo4j/password --name neo4j neo4j:5.26.2

在这里插入图片描述
在这里插入图片描述

3、访问界面

访问地址:http://localhost:7474/browser/

在这里插入图片描述

在这里插入图片描述

4、Cypher 和 使用 Neo4J

在这里有的小伙伴就会想我不太会使用Docker 能不能安装其他版本的呀?当然这个也是有的,小编之前也有写过一篇关于本地安装和怎么使用Neo4J的详细文章,大家有需要可以通过下面链接进行学习。
请看这里:Noe4J 超级详细的安装与使用

4.1、输入 CQL语句

没错,就是在大家最喜欢的美元符号那里输入 CQL语句的。这里我们拿学生和老师举例来说明。

在这里插入图片描述

4.2、增加节点

Neo4j使用的是create 命令进行增加,就类似与MySQL中的insert。

语法如下:
create (node-name:label-name)
create (node-name:label-name { property1-name:property1-Value, …, property3-name:property3-Value})

  • node - name:它是我们要创建的节点名称
  • label - name:它是我们要创建的标签名称
  • property1 - name:就是属性名称
  • property1 - Value:就是属性值
1. 创建一个学生节点(只有节点,没有属性):
create (s:Student)

在美元符号输入完上面的CQL后,回车 或者 点击右侧的三角号执行按钮,会看到如下结果:

在这里插入图片描述

2.创建一个学生节点(创建具有属性的节点)

创建一个id为10000,名字为张三,年龄为18岁,性别为男的学生节点

create (s:Student{id:10000, name:"张三",age:18,sex:1}) 

执行后,会看到如下的结果:

在这里插入图片描述

4.3、查询

我们在上一步创建了没有属性的节点和有属性的节点,那么问题来了,我们怎么查看呢?查询咯~

Neo4j使用的是match … return … 命令进行查询,就类似与MySQL中的select。

我们查询刚刚创建的节点信息。

1.全部查询学生
match (s:Student) return s

从上图可以看到我们刚刚创建的两个节点,一个是没有属性节点,一个是有属性的节点。两个节点是以图的形式展示,我们也可以切换左边的Graph(图)、Table(表格)、Text(文本)等来以不同的形式展示。

在这里插入图片描述

2.查询全部或者部分字段

只需要把要展示的字段以节点名 + 点号 + 属性字段 拼接即可,如下:

match (s:Student) return s.id,s.name,s.age,s.sex

这样就清楚的看到我们插入的学生属性信息。因为有一个是没有属性的节点,所以表格中第2行显示的各个值都是null。

在这里插入图片描述

3.查询满足年龄age等于18的学生信息
match (s:Student) where s.age=18 return s.id,s.name,s.age,s.sex

在这里插入图片描述

怎么样,这条件查询 是不是和MySQL的很相似。当然还有排序、分组、联合、分页等。为了能更好的演示这几种,我们先插入一部分数据,逐条插入:

create (s:Student{id:10001, name:"李四",age:18,sex:1}) return screate (s:Student{id:10002, name:"王五",age:19,sex:1}) return screate (s:Student{id:10003, name:"赵六",age:20,sex:1}) return screate (s:Student{id:10004, name:"周七",age:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小郭.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值