前言
Neo4j 是一个高性能的、NOSQL 图形数据库,它将结构化数据存储在网络上而不是表中。基于磁盘的、具备完全的事务特性的 Java 持久化引擎,这里就不把他和常用关系型数据库做对比了。因为篇幅有限,我这里也是第一次使用,所以以下完全是保姆级的安装教程了。
安装步骤
1. 打开 Neo4j 官网,找到 “Developers” 选择 “Download Center
2. 其中有企业版,社区版和桌面版提供下载,这里我选择 “Neo4j Desktop”,如果是部署可以选择社区或企业。
3. 选择 Windows 的 exe 进入,要求先填写信息后下载,弹出下载框后不要关闭网页,待会需要里面的激活码。
4. 由于 Neo4j 是磁盘存储,打开后先设置数据的存储位置。
5. 然后回到下载后的官网,复制激活码,粘贴到工具的 “Software key” 里。
使用方法
1. 测试服务
先看一下服务是否已经开启,打开默认的数据库,可以看到连接地址,各种协议的端口。
2. 开始连接
打开浏览器,输入 127.0.0.1:7474,账号密码都输入 neo4j 发现登陆失败,报错:Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure
3. 修改密码
找到 neo4j 服务桌面端,找到默认的数据库,找到 “Reset DBMS Password”,然后再重新输入用户 “neo4j” 和新密码进行登陆。
4. 客户端面板
登陆成功后就可以看到 neo4j 的默认数据库 “Movide DBMS” 里的数据节点和内容了。
实操
1. 创建项目
在 Project 中 New 一个项目,然后添加一个 “Local DBMS”,再设置名称和密码,创建完毕后点击启动。
2. web 客户端登陆
根据创建后提供的地址和端口,在浏览器里访问,输入用户名和设置的密码后就会进入对应的图了。
3. 依赖安装
在 python 项目中添加 “py2neo” 包,然后再检测试一下连接,节点创建和关系边创建。
pip install py2neo -i https://pypi.tuna.tsinghua.edu.cn/simple
4. 测试创建节点和关系边
import os
import json
from py2neo import Graph,Node
class ThingGraph:
def __init__(self):
self.neo4j = Graph(
host="127.0.0.1", # neo4j 搭载服务器的ip地址,ifconfig可获取到
http_port=7474, # neo4j 服务器监听的端口号
user="neo4j", # 数据库user name,如果没有更改过,应该是neo4j
password="beiqiaosu123456")
def create_nodes(self):
class_name = ["手机", "笔记本", "平板", "游戏机", "台式机"]
brand = ["苹果", "华为", "小米", "Vivo", "Oppo"]
goods = ["苹果 iPhone 4S", "华为 nova 3e", "华为 T8620", "联想ThinkPad W701"]
return self.create_node('Goods', goods)
if __name__ == "__main__":
things_graph = ThingGraph()
things_graph.create_nodes()
运行代码时如果出现 The following settings are not supported: {'http_port': 7474},是因为安装的 py2neo 版本过高,可以下降其版本再运行。
pip install py2neo==4.3.0 -i https://pypi.douban.com/simple
降低 py2neo 版本后运行后发现依旧报错,AttributeError: 'NoneType' object has no attribute 'pool',主要还是无法连接 Neo4j,排查后发现是之前的写法不对,而且安装最新版的 neo4j,同样的 py2neo 也要较新的。
# 创建一个名为 'Person' 的节点
person = Node('Goods', name='T8620')
# 创建一个 Graph 对象,并指定数据库连接信息
graph = Graph('bolt://localhost:7687', auth=('neo4j', 'beiqiaosu123456'))
# 将节点添加到 Graph 中
graph.create(person)
我把 py2neo 包删掉后,没有指定版本安装的是 py2neo 2021.2.3,运行代码后再在浏览器查看,已经创建了节点 “Goods”,后面数据同步和关联边操作,要等完成了知识问答系统后再总结分享了。