图数据库Neo4j入门指南:从安装到基础操作
什么是Neo4j?
Neo4j是一款高性能的开源图数据库,采用图结构而非传统的表结构来存储数据。它特别适合处理高度互联的数据,如社交网络、推荐系统、知识图谱等场景。
安装
本例安装neo4j-3.X的社区版(对应jdk8)
Neo4j Deployment Center - Graph Database & Analytics
环境变量:
启动服务
neo4j.bat console
访问控制台
浏览器访问:http://localhost:7474
默认凭据:
用户名:neo4j
密码:neo4j
首次登录后会提示修改密码。
CQL基础操作
创建节点
p节点名称,类似变量名,随便写
Person标签名
{id:XXX} 属性
create(p:Person{pid:1,name:\"zhangsan\",age:20})
创建多个节点:
create(p:Person{pid:2,name:\"lisi\",age:23}),(p2:Person{pid:3,name:\"wangwu\",age:21})
查询操作
查询所有的节点
match(p) return p
查询所有指定标签的节点
match(p:Person) return p
根据标签查询
match(p:Person{pid:2}) return p
使用where查询,支持比较运算符、逻辑运算符
match(p:Person) where p.pid=3 return p
match(p:Person) where p.pid<3 return p
创建关系
针对已有节点创建关系,关系使用[]
match(p1:Person{pid:1}),(p2:Person{pid:2})
create (p1)-[r:FRIENDS]->(p2)
关系设置属性
match(p1:Person{pid:1}),(p2:Person{pid:3})
create (p1)-[r:FRIENDS{rid:2,date:\"2025-01-10\"}]->(p2)
创建新的节点和关系
create(p1:Person{pid:10,name:\"Tom\",age:9}),
(p2:Person{pid:11,name:\"Jerry\",age:5}),
(p1)-[r:FRIENDS{rid:10}]->(p2),
(p1)<-[r2:FRIENDS{rid:11}]-(p2)
一个是已有节点,一个是新节点
match(p:Person{name:\"wangwu\"})
create (p2:Person{pid:100,name:\"zhaosi\",age:30}),
(p)-[r:FRIENDS{rid:100}]->(p2)
删除操作
删除关系
match(p1:Person)-[r:FRIENDS{rid:10}]->(p2:Person) delete r
删除节点
match(p:Person{pid:10}) delete p
删除属性
match(p:Person{pid:11}) remove p.age
添加或者修改属性
match(p:Person{pid:11}) set p.name=\"laoshu\"
match(p:Person{pid:11}) set p.age=2,p.name=\"haha\"
一些查询
match(p:Person{pid:1})-[r:FRIENDS]->(p2:Person) return p2
match(p:Person{pid:1})-[r:FRIENDS]->(p2:Person) return p,p2
match(p:Person{pid:1})-[r:FRIENDS]->(p2:Person) return p,r,p2
查询指定节点的子节点,子节点的节点
match(p:Person{pid:1})-[r:FRIENDS*]->(p2:Person) return p,p2
match(p:Person{pid:1})-[r:FRIENDS*]->(p2:Person) return p.pid,p.name,p2.pid,p2.name
APOC插件安装
Release 5.19.0 · neo4j-contrib/neo4j-apoc-procedures · GitHub
APOC是Neo4j的扩展库,提供了许多有用的过程和函数。
拷贝插件到plugins目录下
修改配置文件
apoc.export.file.enabled=true
apoc.import.file.enabled=true
dbms.security.procedures.unrestricted=apoc.*
重启Neo4j服务
验证安装:
实际应用场景
Neo4j特别适合以下场景:
1. 社交网络分析(好友关系、影响力传播,比如拉新操作)
2. 推荐系统(基于关系的推荐)
3. 知识图谱构建
4. 欺诈检测(识别异常关系模式)
5. 权限管理与访问控制