前言

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

图片

  1. 测试创建节点和关系边

    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”,后面数据同步和关联边操作,要等完成了知识问答系统后再总结分享了。
图片


北桥苏
21 声望0 粉丝