🕸️ Neo4j 图数据库

储存的不是数据罗列,而是逻辑脉络、因果关联、层级关系。当"乔布斯的女儿是谁"这类需要推理的问题出现,向量数据库就无能为力——图数据库登场。

🧬 底层存储结构

三个核心元素:节点(Node)= 实体 · 关系(Edge)= 关联 · 属性(Props)= 详情

📊 关系型数据库(表思维)

┌──────┬─────────┬──────┐
│ 姓名 │ 职位    │ 上级 │
├──────┼─────────┼──────┤
│ 张三 │ CEO     │ NULL │
│ 李四 │ CTO     │ 张三 │
│ 王五 │ 工程师  │ 李四 │
└──────┴─────────┴──────┘

问"王五的老板的老板"→ 2次 JOIN

🕸️ 图数据库(图思维)

(张三:CEO)
   │
   ├─管理→ (李四:CTO)
              │
              └─管理→ (王五:工程师)

问"王五的老板的老板"→ 沿边遍历2次 ✅

📝 Cypher 查询语言

Cypher 是 Neo4j 专属语言,像画图一样直观:

-- 创建节点
CREATE (p:Person {name: '乔布斯', born: 1955})

-- 创建关系
MATCH (a:Person {name: '乔布斯'}), (b:Company {name: 'Apple'})
CREATE (a)-[:FOUNDED {year: 1976}]->(b)

-- 乔布斯的女儿是谁?
MATCH (乔布斯:Person {name: '乔布斯'})-[:PARENT_OF]->(child)
RETURN child.name

-- 多跳:女儿就读的大学?
MATCH (乔布斯:Person {name: '乔布斯'})
      -[:PARENT_OF]->(child)-[:STUDIED_AT]->(school)
RETURN child.name, school.name

🏆 核心优势 & 场景

优势说明场景
🧠 隐性逻辑挖掘发现数据中隐藏的关联模式反洗钱、欺诈检测
🔗 溯源关系"根因是什么"一路追溯供应链追踪
🏗️ 多层级串联公司→部门→团队→人,4跳毫秒级组织架构分析
🕸️ 网状数据处理天生适合社交网络、金融交易股权穿透、家族关系
📊 图算法PageRank、社区发现、中心度影响力分析

🔮 GraphRAG = Neo4j + Qdrant + LLM

用户:"某客户供应链最近有什么风险?"
    ↓
1. LLM 提取实体:客户名、供应商名
    ↓
2. Neo4j 图查询:客户→供应商→二级供应商→近期异常
    ↓
3. Qdrant 向量库:检索相关新闻详情
    ↓
4. LLM 综合:生成完整风险分析报告

GraphRAG = 向量库(What) + 图库(Why/How) + LLM(生成)

⚠️ 局限

搭建复杂需定义节点类型和关系模式 → 从简单 schema 迭代
维护成本高数据更新需维护图结构 → 自动化 ETL
运算消耗高大规模图计算需资源 → 索引优化+图分片
← RAG 详解 ← Qdrant ⚖️ 向量 vs 图 → 路线图