Neo4j离线环境搭建与基于python中py2neo的简单操作
1 安装与配置
1.1 Neo4j安装
-
下载安装包:https://neo4j.com/ neo4j-community-4.4.11-unix.tar.gz
-
下载JDK: 因为no4j是基于Java的,所以需要安装之前需要安装JDK;V4版本的NO4J对应JDK11。
下载链接:https://mirrors.huaweicloud.com/java/jdk/8u202-b08/
我这里下载linux版本https://mirrors.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz -
安装JDK
(1)解压 :进入所在目录,执行:
tar zxvf jdk-11.0.15.1_linux-x64_bin.tar.gz
(2) 放入安装目录:选择自己要安装的目录将解压后的文件放入。
(3) 修改环境变量#java export JAVA_HOME=自己的放置目录/jdk-11.0.15.1 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}
重启配置文件:source /etc/profile
(4) 验证
javac
java-version
安装成功啦!
- 安装Neo4j
(1) 解压
(2) 放入安装目录
(3) 修改配置文件
(4) 启动
进入所在目录的bin文件夹下,打开终端,输入./neo4j start
(5) 查看状态./neo4j status
(6) 停止./neo4j stop
(7) 客户端访问
访问地址:http://服务器ip:7474/browser/
本地访问:http://localhost:7474/browser/
1.2 python操作环境配置
1、 下载安装包:neo4j-5.0.0.tar.gz
2、 pip install neo4j-5.0.0.tar.gz
2 Neo4j操作
2.1 创建:
创建点
CREATE (:电影{title:’The Matrix’,时间:1997})
电影是节点的label,后面是节点属性,节点id只能自动生成
CREATE (p:Person {name: ‘Keanu Reeves’, born: 1964})
RETURN p
CREATE(节点名称:节点标签名称 {属性名称1:属性值1,属性名称2:属性值2})
创建点边:
CREATE(a:Per{name:’Tom’})-[r:ACTED_IN{roles:’Forrest’}]->(m:Movie)
> MATCH(节点标签1:节点名称1),(节点标签2:节点名称2)
> CREATE(节点标签1)-[关系标签:关系名称{属性值}]->(节点标签2)
> RETURN 关系标签
给一个节点创建多个标签:
CREATE (
<node-name>:<label-name1>:<label-name2>.....:<label-namen>
)
where创建关系:
MATCH(
<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-ame>
)
WHERE<condition>
CREATE (<node1-label-name>
)-[<relationship-label-name>
:<relationship-name>
{<relationship-properties>
}]->(<node2-label-name>
)
2.2 查询:
>MATCH(节点名称:节点标签)
>RETURN 节点名称.属性名称,……
>MATCH (emp:Employee)
>RETURN emp.empid,emp.name,emp.salary,emp.deptno
where:
MATCH (emp:Employee)
WHERE emp.name = 'Abc'
RETURN emp
2.3 删除:
删除节点
DELETE <node-name-list>
删除节点与关系
DELETE <node1-name>,<node2-name>,<relationship-name>
删除属性与标签
REMOVE <property-name-list>
列表格式
<node-name>.<property1-name>,
<node-name>.<property2-name>,
....
<node-name>.<propertyn-name>
2.4 示例:
MATCH (book { id:122 })
REMOVE book.price
RETURN book
2.5 新增
新增属性
SET <property-name-list>
<node-label-name>.<property1-name>,
<node-label-name>.<property2-name>,
....
<node-label-name>.<propertyn-name>
3 py2neo操作
from py2neo import Graph,Node,Relationship
graph = Graph('http://localhost:7474',auth=("neo4j","neo4j"))
#此处根据自己需要向数据库添加数据
start_node = Node("IP",name=ip_src[i],address=ip_src_address[i],port=str(ip_src_port[i]))
end_node = Node("IP",name=ip_dst[i],address=ip_dst_address[i],port=str(ip_dst_port[i]))
relation = Relationship(start_node,'',end_node)
#graph.create(start_node)
#使用merge,会覆盖之前一致的节点;
graph.merge(start_node,"IP","name")
graph.merge(end_node,"IP","name")
graph.merge(relation)