本文目录导读:

- 社交网络分析(经典入门案例)
- 金融风控与反欺诈(企业级核心场景)
- 供应链优化(制造业/零售业)
- 医疗知识图谱(科研+临床辅助)
- 推荐系统(电商/内容平台)
- 工业物联网异常检测(智能制造)
- 企业应用建议(综合方案)
- 性能与适用场景总结
- 学习资源建议
我为你整理了Neo4j在不同行业的几个经典案例,从入门到进阶,方便你理解图数据库的实际应用场景。
社交网络分析(经典入门案例)
场景描述
模拟微信、Twitter等社交平台的好友关系和互动分析。
核心数据模型
(:User {name: '张三', age: 28})
-[:FOLLOWS {since: 2020}]-> (:User {name: '李四'})
-[:LIKES]-> (:Post {content: '图数据库真好用'})
典型查询与价值
查找二度人脉(你可能认识的人)
MATCH (me:User {name:'张三'})-[:FOLLOWS]->(friend)-[:FOLLOWS]->(fof)
WHERE NOT (me)-[:FOLLOWS]->(fof)
RETURN fof.name AS 推荐好友, COUNT(*) AS 共同好友数
ORDER BY 共同好友数 DESC LIMIT 10
业务价值:好友推荐系统的核心逻辑。
发现关键影响者(社群发现)
MATCH (u:User) RETURN u.name, size((u)<-[:FOLLOWS]-()) AS 粉丝数 ORDER BY 粉丝数 DESC LIMIT 5
业务价值:识别KOL,优化营销投放策略。
金融风控与反欺诈(企业级核心场景)
场景描述
某银行利用Neo4j识别团伙欺诈、挖掘资金异常路径。
核心数据模型
(:Customer {id: 'C001', risk_score: 0.8})
-[:HAS_ACCOUNT]-> (:Account {number: '6222****'})
-[:TRANSFER {amount: 50000, time: 2023-06-01}]-> (:Account)
-[:HAS_PHONE]-> (:Phone {number: '138****'})
-[:HAS_DEVICE]-> (:Device {imei: 'abc123'})
典型查询与价值
异常资金循环检测(环形交易)
MATCH (a1:Account)-[:TRANSFER]->(a2:Account)-[:TRANSFER]->(a1)
WHERE a1 <> a2
RETURN a1.number AS 账户A, a2.number AS 账户B,
SUM([a1,a2] ...) // 计算循环金额
业务价值:识别洗钱、刷单等非法资金流转。
风险扩散路径追踪
MATCH path = (fraud:Customer {id:'C999'})-[:HAS_DEVICE|HAS_PHONE|HAS_ACCOUNT*1..3]-(related)
RETURN path
业务价值:当发现一个欺诈客户时,快速关联出整个欺诈团伙。
供应链优化(制造业/零售业)
场景描述
某全球连锁零售企业,管理数千家供应商与门店的物料流转。
核心数据模型
(:Supplier {name: 'Apple'})
-[:SUPPLIES]-> (:Part {model: 'A15芯片'})
-[:USED_IN]-> (:Product {name: 'iPhone 15'})
-[:SOLD_AT]-> (:Store {city: '北京'})
典型查询与价值
断供风险预警
MATCH (p:Product {name:'iPhone 15'})-[:USED_IN|SUPPLIES]-(supplier:Supplier)
WHERE supplier.delivery_delay > 2
RETURN p.name, supplier.name AS 风险供应商
业务价值:提前识别关键物料断供风险。
最短调货路径
MATCH path = shortestPath(
(s1:Store {city:'北京'})-[:CAN_SHIP*]-(s2:Store {city:'上海'})
)
RETURN length(path) AS 库存调拨跳数
业务价值:疫情期间快速调配库存,降低物流成本。
医疗知识图谱(科研+临床辅助)
场景描述
构建药物-疾病-症状-基因的关系网络,辅助新药研发和临床决策。
核心数据模型
(:Drug {name:'二甲双胍'})
-[:TREATS]-> (:Disease {name:'2型糖尿病'})
-[:HAS_TARGET]-> (:Gene {name:'AMPK'})
(:Patient {id:'P001', symptoms:['多饮','多尿']})
-[:EXHIBITS]-> (:Symptom)
典型查询与价值
药物相互作用检查
MATCH (d1:Drug {name:'华法林'})-[:INTERACTS_WITH]-(d2:Drug)
WHERE NOT (:Patient {id:'P001', medication:'华法林'})-[:ALLERGIC_TO]->(d2)
RETURN d2.name AS 替换药物
业务价值:辅助医生安全用药。
多跳关联发现(知识发现)
MATCH (g:Gene)-[:ASSOCIATED_WITH]->(dis:Disease)<-[:TREATS]-(drug:Drug) WHERE g.name = 'BRCA1' RETURN drug.name AS 潜在治疗药物
业务价值:研发团队快速发现药物新适应症(药物重定位)。
推荐系统(电商/内容平台)
场景描述
基于用户行为的实时推荐,比协同过滤更精准的解释性推荐。
核心数据模型
(:User {id: 'u1'})-[:PURCHASED]->(:Item {id: 'book1'})
(:Item {id: 'book1'})-[:SIMILAR_TO {score:0.95}]->(:Item {id: 'book2'})
典型查询与价值
"购买过A的人,也购买了B" 的实时查询
MATCH (u:User)-[:PURCHASED]->(item1:Item)<-[:PURCHASED]-(other:User) WITH u, item1, other MATCH (other)-[:PURCHASED]->(recommend:Item) WHERE NOT (u)-[:PURCHASED]->(recommend) RETURN DISTINCT recommend.id, COUNT(*) AS 支持度 ORDER BY 支持度 DESC LIMIT 20
业务价值:实现秒级响应,并支持解释推荐理由("你关注的人喜欢")。
工业物联网异常检测(智能制造)
场景描述
某汽车工厂,监控产线上数百台机器的传感器异常传播。
核心数据模型
(:Machine {id:'M1', type:'焊接机器人'})
-[:CONNECTED_TO {latency:0.5}]->(:Machine)
-[:HAS_SENSOR]-> (:Sensor {type:'温度', value:85})
典型查询与价值
故障传播链分析
MATCH path = (broken:Machine {status:'FAILED'})-[:CONNECTED_TO*1..4]-(m:Machine)
WHERE ALL(n IN nodes(path) WHERE n.temp_alert = true)
RETURN path
业务价值:在故障发生前,预示影响范围,提前停机维护。
企业应用建议(综合方案)
权限治理(金融机构/大型企业)
(:User)-[:HAS_ROLE]->(:Role)-[:PERMITS]->(:System) // 快速发现离职员工仍拥有的敏感权限
知识管理(咨询服务/研发)
(:Document)-[:CITES]->(:Patent)-[:INVOLVES]->(:Technology) // 秒级回答“哪些技术影响我们的专利组合”
物流路径规划(快递/供应链)
(:Warehouse)-[:ROUTE {cost: 123}]->(:City)
// Neo4j GDS 库的 Dijkstra 算法内置支持
性能与适用场景总结
| 场景 | 适合Neo4j的原因 | 不适合的场景 |
|---|---|---|
| 关联分析(3跳以上) | 深度遍历极速 | 简单CRUD(用MySQL) |
| 实时推荐/风控 | 毫秒级响应 | 海量全文检索(用ES) |
| 知识图谱/语义网络 | 天然图结构 | 大规模聚合计算 |
| 路径/网络分析 | 高级图算法库 | 非关系数据 |
学习资源建议
- 官方教程:Neo4j官方GraphAcademy(免费)
- 数据集:GitHub上搜索 neo4j-sample-datasets(含电影、航班等入门数据)
- 实战项目:先用
LOAD CSV导入公开数据集(如COVID-19论文数据、KONECT网络数据) - 进阶:学习 APOC 库和 GDS 图算法库(PageRank、社区发现等)