之前搞比赛有用到Neo4j,随手做了些记录,在这里分享一下
安装JDK
我使用的Nej4j要求JDK11以上,不然会报错:
ERROR! Neo4j cannot be started using java version 1.8.0_261.
* Please use Oracle(R) Java(TM) 11, OpenJDK(TM) 11 to run Neo4j.
* Please see https://neo4j.com/docs/ for Neo4j installation instructions.
在https://www.oracle.com/java/technologies/javase-downloads.html直接下载JDK11的deb版本,然后使用gedit ~/.bashrc
设置环境变量
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk-11.0.8 ## 换成/usr/lib/jvm/下的jdk路径
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
重新打开一个终端,执行java --version
,输出如下
java 11.0.8 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)
表明安装成功
安装Neo4j
下载地址:https://neo4j.com/download-center/#community
tar -xf neo4j-community-4.1.1-unix.tar.gz
然后使用下面的命令开启数据库
cd ./neo4j-community-4.1.1
./bin/neo4j console
点击http://localhost:7474/,即可打开Neo4j可视化界面
Neo4j基本使用方法
neo4j的数据由节点、边(关系)、属性构成,节点以及边都能包含值的属性
首先需要在本地开启一个neo4j数据库,然后使用下面的命令删除数据库以往的图
MATCH (n) DETACH DELETE n
在python中使用py2neo
库来调用neo4j,使用下面的命令来连接数据库
from py2neo import *
graph = Graph("http://localhost:7474",username="neo4j",password="ghowoght")
主要有创建节点(Node)和关系(Relationship)函数。用法如下:
# 以下代码创建了两个节点,其中Person表示标签(label),name和age是属性
node0 = Node('Person' , name = 'Alice')
node1 = Node('Person' , name = 'Bob')
node0['age'] = 20
node1['age'] = 25
graph.create(node0)
graph.create(node1)
# 以下代码创建上述两个节点的关系
node0_know_node1 = Relationship(node0 , 'know' , node1)
graph.create(node0_know_node1)
node1_know_node0 = Relationship(node1 , 'know' , node0)
graph.create(node1_know_node0)