小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ
如何使用Python和Neo4j构建知识图谱 [完整手册]

本文介绍如何用Python和Neo4j构建知识图谱,涵盖建模、数据加载与查询优化。核心在于利用图数据库的索引无关邻接实现高效多跳查询,优于SQL的多次连接。内容包括节点/关系建模原则、UNWIND批量加载、索引与约束设置、查询计划分析,以及结合向量搜索构建AI知识图谱的方法,并附完整可运行脚本。

如何使用Python和Neo4j构建知识图谱 [完整手册]

freeCodeCamp.org freeCodeCamp.org · 2026-08-20T17:00:00Z

> 本文是写作规划,不是可发布正文。拆解对象:属性图(property graph)存储与遍历引擎——以 Neo4j 5.x(record / aligned / block store)为主线,TinkerPop / JanusGraph、TigerGraph 作对照;Cypher / Gremlin 只写到「计划与…

图数据库内核 — 系列规划

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-10T15:04:03Z

本文介绍JanusGraph基于TinkerPop接口,将图数据存储于Cassandra等宽行后端,采用邻接表布局,边双写,事务非必然ACID,依赖后端一致性。对比Neo4j原生存储,JanusGraph牺牲局部性换取可扩展性,用vertex-centric索引应对超节点,适合已有宽表集群的场景。

【图数据库内核】TinkerPop / JanusGraph:外置邻接表图层,不是第二套原生 store

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-09T00:00:00Z

本文比较六种图数据库引擎的架构差异,聚焦邻接布局、查询表面、事务、扩展和运维五轴。TigerGraph采用原生并行存储与MPP/BSP执行,JanusGraph依赖外置宽行图层,Neptune基于四元组索引和云共享存储,AGE映射PostgreSQL表,Memgraph支持内存与磁盘模式切换。文章强调机制定位而非性能排名,最终选型决策留待第16篇。

【图数据库内核】引擎对照句:TigerGraph、Neptune、AGE、Memgraph 与原生/图层分叉

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-09T00:00:00Z

本文介绍Neo4j图数据库生产环境排障方法,核心是“三轴分流”:先判断慢查询属于计划基数(轴A)、存储I/O(轴B)还是锁/并发(轴C),再对症处理。文章强调超节点问题应优先优化建模与查询而非硬件,并给出内存三分(page cache、heap、OS)的配置与指标解读,以及锁死锁排查、慢查询固定流程和症状速查表。

【图数据库内核】生产排障:超节点、爆炸路径、内存三分与慢查询清单

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-09T00:00:00Z

本文总结图数据库选型与接口设计:何时用原生图引擎、GraphRAG边语义分级(L0-L3)及存储建议。核心观点:深多跳、邻接局部性、事务边场景倾向原生图;GraphRAG边多为可重建的L0-L1,权限审计边需强一致存储。向量管语义,图管可达,按边分级选型,避免一刀切。

【图数据库内核】选型与 GraphRAG 接口:边语义分级,何时必须原生图

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-09T00:00:00Z

本文为图数据库内核系列首篇,介绍属性图引擎在存储生态中的角色,对比行存、LSM、向量引擎与GraphRAG。重点阐述Neo4j的record与block存储格式、邻接代价模型、页缓存及Cypher计划边界,并规划16篇阅读路线,强调原生邻接布局对多跳查询性能的关键作用。

【图数据库内核】图引擎全景:属性图作为一等公民的存储与遍历

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文比较图数据库四种邻接布局(边表、CSR、指针链、Block内联)的代价模型,分析一次hop与k跳扩张的差异。核心观点:大O相同但常数、局部性、更新代价不同;幂律图超节点主导事故形态;选型需关注k、f、d_max和更新频率四个旋钮,而非品牌之争。

【图数据库内核】邻接的代价模型:边表 JOIN、CSR 与原生指针为何不是同一件事

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j图数据库record存储引擎布局:节点15字节、关系34字节、属性41字节、关系组25字节,均采用定长记录加指针链表结构。稀疏节点直接扫描关系链,密集节点通过关系组按类型分桶。aligned为Community默认格式,block为Enterprise推荐格式。

【图数据库内核】Neo4j record 系布局:节点、关系链、属性链与 dense group

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j图数据库的Block存储格式,采用128字节固定主块内联节点与关系数据,溢出时分层使用动态存储、dense B+树及huge存储。相比Record系指针链,Block减少指针追逐,提升局部性,支持更高实体上限,但空节点有固定空间开销。该格式为Enterprise默认,Community仍用aligned。

【图数据库内核】Neo4j Block format:128 B 主块、动态溢出与 dense B+ 树

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j图数据库的page cache机制:页大小为8192字节,用于缓存磁盘上的图数据和原生索引。配置上建议显式设置server.memory.pagecache.size,并通过hit_ratio(应达98%以上)、usage_ratio、page_faults等指标监控健康度。Record格式易受随机指针颠簸影响,Block格式通过数据共置减少页访问,超节点则需建模优化。扩缓存只是优化手段之一。

【图数据库内核】Page cache 与指针追逐:布局如何变成命中率

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍图数据库Neo4j的写入路径:创建关系时挂链或升dense,删除采用逻辑删除并复用ID,空间不立即归还OS。写放大影响读局部性,逼近阈值触发结构迁移,复用旧ID可能破坏缓存友好性。压实需用database copy工具。

【图数据库内核】写入路径:建边、升 dense、逻辑删除与 ID 复用

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j 5的索引与约束机制。索引分四类:LOOKUP(标签/类型)、RANGE(属性范围)、TEXT(文本子串)、POINT(空间),用于加速查询起点选择,但不解决深度遍历爆炸问题。约束(唯一、存在、类型、KEY)保证完整性,但会带来写放大。过索引增加空间和写入成本,需谨慎设计。

【图数据库内核】标签、类型与属性索引:起点过滤器,不是遍历引擎

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j图数据库中全文索引与向量索引的边界:两者均由Lucene驱动,不自动被Cypher规划器选用,需显式调用过程或SEARCH查询。全文索引用于分词匹配与打分,向量索引用于嵌入近邻搜索。内存上依赖OS缓存而非page cache,分数不可跨源比较,可与图拓扑扩展结合实现混合检索。

【图数据库内核】全文与向量属性边界:Lucene 旁路,不是 page cache 里的第二套邻接

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍图数据库Cypher计划中Expand算子家族:单跳Expand(All)生成邻居、Expand(Into)连接已知两端,变长路径需设上界防爆炸,Pruning优化仅需唯一终点,最短路径用双向BFS而非变长枚举。强调存储耦合、谓词下推及实操要点,如避免超节点扫描、量化路径剪枝等。

【图数据库内核】遍历与 Expand:从索引起点走到邻居的执行骨架

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Cypher查询计划与基数管理。规划器基于统计估计行数选择执行路径,但幂律图上平均度数失真,导致Estimated Rows低估实际行数,引发Expand爆炸。调优需用PROFILE对比真实Rows,通过DISTINCT、聚合、早LIMIT控制基数,而非依赖索引提示。

【图数据库内核】Cypher 计划入口:Estimated Rows、基数乘积与「看起来对但跑爆」

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j图数据库的事务与锁机制。默认隔离级别为读已提交,写锁自动获取,遍历数据不受保护。锁落在节点或关系上,dense节点建边时锁粒度更细。死锁是可重试的瞬时错误,需固定更新顺序。删除节点需先删关系。

【图数据库内核】事务、锁与隔离:读已提交、建边锁与 dense 并发

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍Neo4j集群高可用架构:服务器与数据库角色解耦,primary负责写并靠Raft多数确认,secondary异步复制用于读扩展。因果一致性通过书签保证跨成员读己之写。集群不改变单机隔离级别,默认仍为读已提交。

【图数据库内核】高可用边界:primary / secondary、书签因果一致与只读滞后

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z

本文介绍图数据库内核系列文章,聚焦属性图存储与遍历。内容涵盖Neo4j的record/block格式、邻接代价模型、索引、Cypher计划及事务处理,并对比TinkerPop、JanusGraph等引擎。系列共16篇,已发布13篇,旨在帮助工程师理解图存储底层机制及选型,区分原生图引擎与关系库递归CTE的适用场景。

【图数据库内核】属性图 · Store Format · Expand · Cypher 计划边界

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z
Floor Drees:抢先一步:展望PostgreSQL 19

PostgreSQL 19于4月8日功能冻结,社区专注于测试和修复。新版本将支持图数据库、提供pg_plan_advice工具以及无锁表膨胀处理的REPACK功能,预计在9月/10月发布,并将举行PGConf.EU大会。

Floor Drees:抢先一步:展望PostgreSQL 19

Planet PostgreSQL Planet PostgreSQL · 2026-07-03T12:28:55Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码