主流的图数据库,提供知识图谱与 GraphRAG 能力,用于构建带实体关系的检索增强生成应用。
它到底解决什么问题
关系型数据库擅长存表格,但一旦数据之间的关系变得复杂——比如“谁认识谁”“哪个零件装配到哪台设备”“这笔转账经过哪些账户”——用 SQL 写多表 JOIN 就会越来越痛苦。Neo4j 是把“关系”当作一等公民来存的数据库,节点和边直接落盘,查两跳、三跳关系不用拼一堆 JOIN。
适合用它的场景很具体:反欺诈路径分析、推荐系统、供应链溯源、IT 资产依赖图,以及这两年很热的 GraphRAG——把文档里的实体和关系抽出来建成图谱,检索时沿着实体关系走,比单纯向量相似度召回更能回答“A 和 B 之间是什么关系”这类问题。
图模型长什么样
数据模型很直白:节点(Node)带标签和属性,关系(Relationship)有方向、有类型、也能带属性。查询语言叫 Cypher,写法接近在纸上画图:
MATCH (p:Person {name: '张三'})-[:KNOWS]->(friend)-[:WORKS_AT]->(c:Company)
RETURN friend.name, c.name
这段就是在问“张三的朋友都在哪家公司”。路径匹配是它的看家本领,变长路径、最短路径都有原生支持,不用自己写递归。
GraphRAG 这块怎么落地
Neo4j 提供向量索引,可以把 embedding 存在节点属性上,同时保留图结构。检索时既能做向量相似度召回,也能顺着关系扩展上下文——比如先向量找到一篇文档,再沿 MENTIONS 关系带出它提到的所有实体和关联文档,喂给大模型时上下文更完整,也更可解释。
官方有 neo4j-graphrag-python 这类库,封装了知识图谱构建、检索器、GraphRAG pipeline 的常用组件,接 LangChain、LlamaIndex 也有现成集成。部署上支持自托管和 AuraDB 云托管,社区版免费,企业版按需。
什么情况下别选它
数据基本是规整的表格、查询以聚合统计为主、关系深度不超过一两层,那 PostgreSQL 更省事。图数据库的优势在“关系本身就是查询目标”的时候才明显,硬套反而增加运维成本。另外超大规模全图扫描类分析,它也不是最优解,得看具体负载。
常见问题
Neo4j 是什么?
主流的图数据库,提供知识图谱与 GraphRAG 能力,用于构建带实体关系的检索增强生成应用。
Neo4j 的官方网站是什么?
Neo4j 的官方网站是 https://neo4j.com,可直接在浏览器中打开使用。
