Ubuntu环境下安装neo4j,配置远程连接、python创建节点demo

前言

neo4j是较为知名的图数据库,也常常用在知识图谱领域,用来存储实体和实体属性,实体关系等,可以说是构建知识图谱非常有用的工具。neo4j主要有以下几个优点:

  • 采用原生图(Native Graph)存储和处理数据:提供最优化的关系遍历执行效率,比关系数据库的表连接快上千倍
  • 基于(标签)属性图模型:支持丰富的数据语义描述、并且兼具灵活性
  • 基于纯Java实现,支持最广泛的操作系统和最便捷的部署,支持云端和容器部署
  • 提供面向图分析和模式匹配、声明型的Cypher查询语言,直观、简介、易于理解
  • 丰富的驱动语言支持:官方发布的有Java, JavaScript, Python, .Net和GO。另外还有社区用户提供的C/C++, R, JDBC, Python等各类语言驱动

就是因为有以上这些优点,neo4j具有最具规模和最活跃的社区:社区版累计下载次数超过1千3百万,社区活跃技术人员超过5万,每年线上线下技术交流聚会超过400场。github上与Neo4j相关项目超过1万个。

笔者最近在研究有关知识图谱的任务,选择用图数据库neo4j。但是只通过neo4j中直接创建节点和关系,显得效率过于低下,于是想通过python直接对neo4j进行操作。这篇博客用来记录安装过程和遇到的问题和解决方法。

安装流程

首先进入neo4j官网下载页面,可以看到,这个数据库主要包含三个版本:企业版,社区版和桌面版。
在这里插入图片描述笔者这里选择的社区版4.4.18,免费版本的下载,这里建议下载这个Linux / Mac Executable这个版本,下载完成之后,直接解压并可以使用。

解压压缩包命令:

tar -axvf neo4j-community-4.4.18-unix.tar.gz

解压之后,进入到neo4j-community-4.4.18目录,运行命令:

./bin/neo4j start 

就可以启动neo4j。

进行到这一步,经常遇到的第一个问题,就是:java没有安装,或者版本不对。

这个问题比较好解决,安装对应的java-jdk版本即可使用命令:

apt-get install default-jdk
java -version #查看java版本

最后再启动一次neo4j,显示如下,表示启动成功:
在这里插入图片描述

neo4j远程连接

这里的远程连接,是指局域网内的远程连接,不是类似将neo4j安装在某台设备上,然后再在这台设备上打开浏览器,就可以直接输入http://localhost:7474就可以打开neo4j的界面。

笔者这里是将neo4j安装在一台Ubuntu的服务器上,然后在另一台电脑上打开浏览器打开neo4j的界面。具体操作如下:

(1)进入到neo4j-community-4.4.18目录,输入如下命令

vim ./conf/neo4j.conf 

修改图片中这两个地方:
在这里插入图片描述
(2)重新启动neo4j,会出现下面这样的打印:

Directories in use:
home:         /opt/neo4j-community-4.4.18
config:       /opt/neo4j-community-4.4.18/conf
logs:         /opt/neo4j-community-4.4.18/logs
plugins:      /opt/neo4j-community-4.4.18/plugins
import:       /opt/neo4j-community-4.4.18/import
data:         /opt/neo4j-community-4.4.18/data
certificates: /opt/neo4j-community-4.4.18/certificates
licenses:     /opt/neo4j-community-4.4.18/licenses
run:          /opt/neo4j-community-4.4.18/run
Starting Neo4j.
Started neo4j (pid:34560). It is available at http://0.0.0.0:7474
There may be a short delay until the server is ready.

然后查看一下log文件打印是否正常,笔者就遇到过这种情况,启动neo4j界面显示启动正常,但是在log文件却显示失败。

进入到logs文件夹,然后输入命令:

cat neo4j.log 

如果遇到如下的错误:
请添加图片描述
则代表上面步骤1错误,不应该设置https,而是要设置http,这两个有区别

dbms.connector.https.enabled=true
dbms.connector.https.listen_address=:7473
dbms.connector.https.advertised_address=:7473

最后如果都没有报错,在本地电脑的浏览器上输入:

http://服务器ip:7474/browser/

则可以打开neo4j远程界面

在这里插入图片描述

python远程创建graph

虽然在neo4j的远程界面也可以创建节点和节点关系,但是太过于麻烦了。下面讲述一下怎么使用python脚本来创建graph。

(1)首先要安装py2neo,这个很简单,使用命令即可:

pip install py2neo

(2)使用脚本如下所示:

from py2neo import Graph, Node, Relationship

# Graph()中第一个为local host链接,auth为认证,包含 username 和 password
gragh = Graph('http://localhost:7474', auth = ('user', 'pwd'))

a = Node("hero", name="Clint")  # Node(label, name)
b = Node("hero", name="Natasha")
ab = Relationship(a, "friend", b)
gragh.create(ab)  # 创建节点和关系

这里需要注意一点,Graph初始化的网址,如果是在安装neo4j的服务器上运行python脚本,那么初始化传的网址就用:

'http://localhost:7474'

而如果是在其他设备上,那么初始化的网址就得用:

'http://服务器ip:7474'

这里的python脚本简单创建两个节点,和这两个节点的关系,创建成功如下所示:
在这里插入图片描述

参考

linux环境下的Neo4j安装
在Linux系统中安装Neo4j
python操作图数据库neo4j的两种方式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肥宅程序员aka不会游泳的鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值