<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Neo4j on PlumePHP</title><link>https://plumephp.com/tags/neo4j/</link><description>Recent content in Neo4j on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 28 Sep 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/neo4j/index.xml" rel="self" type="application/rss+xml"/><item><title>Neo4j 生产性能调优：page cache、内存配置与查询优化实战</title><link>https://plumephp.com/graphdb-performance-tuning/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-performance-tuning/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;图数据库在生产环境的性能，绝大多数瓶颈不在「算法」而在「配置与写法」：page cache 没喂够、查询没参数化、遍历没限制深度、索引没建对——每一条都能让同一张图从毫秒级退化到分钟级。&lt;strong&gt;性能调优不是玄学，而是一套可度量的流程&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>反欺诈与风控图谱实战：关联分析识别黑产团伙</title><link>https://plumephp.com/graphdb-fraud-detection/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-fraud-detection/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;风控反欺诈的本质是&lt;strong&gt;识别「关系」中的异常&lt;/strong&gt;：单看一个账户很正常，但当 100 个账户共用同一台设备、同一批联系人、同一张银行卡时，黑产团伙的轮廓立刻浮现。这正是图数据库的主场——&lt;strong&gt;关联分析&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>图数据建模模式与反模式：从关系思维到图谱思维</title><link>https://plumephp.com/graphdb-modeling-patterns/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-modeling-patterns/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;关系型数据库用&lt;strong&gt;表 + 外键&lt;/strong&gt;建模，图数据库用&lt;strong&gt;节点 + 关系&lt;/strong&gt;建模——但「把 SQL 的 ER 图原样翻译成属性图」是最常见的建模失败。&lt;strong&gt;图建模不是换个存储引擎，而是换一种思维方式&lt;/strong&gt;：关系从「连接行」升格为「一等公民」，查询从「JOIN 表」变成「沿关系遍历」。&lt;/p&gt;</description></item><item><title>图驱动推荐系统：从协同过滤到图嵌入的实战路径</title><link>https://plumephp.com/graphdb-recommendation-system/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-recommendation-system/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;推荐系统传统上以「用户-物品评分矩阵」为中心，用协同过滤、矩阵分解求解。但当交互数据变成&lt;strong&gt;关系图谱&lt;/strong&gt;——用户、物品、标签、品牌、类目、内容互相连接——图数据库提供了更自然的建模与更丰富的推荐信号：&lt;strong&gt;「看了这本书的人也看了」本质上就是一条二跳路径&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>图数据库选型与集群运维：从 Causal Cluster 到分布式对比</title><link>https://plumephp.com/graphdb-cluster-operations/</link><pubDate>Sat, 26 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-cluster-operations/</guid><description>&lt;h2 id="导语当图数据变成关键基础设施"&gt;导语：当图数据变成关键基础设施&lt;/h2&gt;
&lt;p&gt;单机 Neo4j 能支撑千万级节点，但当图数据成为关键业务基础设施（风控、供应链、社交），高可用与水平扩展就不是选项而是底线。本文聚焦生产级集群运维：从 Neo4j 的 Causal Cluster 因果一致性、读写分离，到分片与复制、备份恢复、监控告警，最后对比 NebulaGraph、JanusGraph、Dgraph 的集群架构差异（概念基础见 &lt;a href="https://plumephp.com/graphdb-comparison/"&gt;图数据库选型对比&lt;/a&gt;）。&lt;/p&gt;</description></item><item><title>GraphRAG：知识图谱 + 向量检索的检索增强生成实践</title><link>https://plumephp.com/graphdb-graphrag-vector/</link><pubDate>Sat, 26 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-graphrag-vector/</guid><description>&lt;h2 id="导语rag-的第三次进化"&gt;导语：RAG 的第三次进化&lt;/h2&gt;
&lt;p&gt;第一代 RAG 用向量相似度检索文本块，第二代加了重排（rerank）与混合检索，但都困在一个问题上：&lt;strong&gt;文本块之间没有关系，模型无法理解&amp;quot;谁和谁在什么时候有关联&amp;quot;&lt;/strong&gt;。GraphRAG 把知识图谱引入 RAG——检索的不再是孤立的文本块，而是&lt;strong&gt;带关系的子图&lt;/strong&gt;。这让多跳推理（multi-hop reasoning）、全局问题（global question）的回答质量显著提升。本专题的 &lt;a href="https://plumephp.com/graphdb-knowledge-graph/"&gt;知识图谱构建与应用&lt;/a&gt; 已介绍 KG 概念，本文聚焦 GraphRAG 的工程实现。&lt;/p&gt;</description></item><item><title>知识图谱构建实战：从文本到图谱的完整流水线</title><link>https://plumephp.com/graphdb-knowledge-graph-practice/</link><pubDate>Sat, 26 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-knowledge-graph-practice/</guid><description>&lt;h2 id="导语知识图谱的-1-是模型99-是工程"&gt;导语：知识图谱的 1% 是模型，99% 是工程&lt;/h2&gt;
&lt;p&gt;很多人以为构建知识图谱是&amp;quot;训练一个抽取模型&amp;quot;的事。真实项目中，&lt;strong&gt;实体识别与链接、本体设计、数据清洗、入库去重、增量更新&lt;/strong&gt;的工程量远大于模型本身。本文承接 &lt;a href="https://plumephp.com/graphdb-knowledge-graph/"&gt;知识图谱构建与应用&lt;/a&gt; 的概念篇，聚焦可落地的工程实现——从一份原始文档到一张可查询的 Neo4j 图谱。&lt;/p&gt;</description></item><item><title>事务与索引调优：Neo4j ACID、Schema 设计与执行计划分析</title><link>https://plumephp.com/graphdb-transactions-indexing/</link><pubDate>Sat, 26 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-transactions-indexing/</guid><description>&lt;h2 id="导语图数据库的调优与关系型数据库截然不同"&gt;导语：图数据库的调优与关系型数据库截然不同&lt;/h2&gt;
&lt;p&gt;很多人带着 SQL 的思维迁移到 Neo4j，却忽略了两个关键差异：&lt;strong&gt;事务语义围绕&amp;quot;图遍历&amp;quot;而非&amp;quot;行集&amp;quot;&lt;/strong&gt;，&lt;strong&gt;性能瓶颈往往不在 JOIN 而在遍历扇出（fan-out）与索引命中&lt;/strong&gt;。本文从 ACID 事务模型讲起，经过 Schema 与索引设计，最后深入到执行计划与配置调优，构成一条完整的性能工程路径。&lt;/p&gt;</description></item><item><title>Cypher 高级查询模式：路径表达式、子查询与 APOC 实战</title><link>https://plumephp.com/graphdb-cypher-advanced/</link><pubDate>Sat, 26 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-cypher-advanced/</guid><description>&lt;h2 id="导语从会写到写对"&gt;导语：从会写到写对&lt;/h2&gt;
&lt;p&gt;Cypher 入门容易，写出&amp;quot;正确且高效&amp;quot;的查询却需要掌握三个层次：&lt;strong&gt;模式表达式&lt;/strong&gt;（怎么描述路径）、&lt;strong&gt;组合能力&lt;/strong&gt;（子查询如何组织）、&lt;strong&gt;性能意识&lt;/strong&gt;（哪些写法会让执行器崩溃）。本文假设你已经掌握基础语法（见 &lt;a href="https://plumephp.com/graphdb-neo4j-cypher-guide/"&gt;Neo4j 与 Cypher 查询语言完全指南&lt;/a&gt;），聚焦生产环境中真正高频的高级模式。&lt;/p&gt;</description></item><item><title>GraphRAG 实战：从向量检索到知识图谱增强检索</title><link>https://plumephp.com/llm-graphrag-knowledge-graph/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/llm-graphrag-knowledge-graph/</guid><description>&lt;p&gt;传统 RAG 用向量相似度检索文档片段，但在回答&amp;quot;谁和谁有关系&amp;quot;&amp;ldquo;某事件的完整影响链&amp;quot;这类需要多跳推理的问题时力不从心——关键信息可能分散在不同文档里，向量检索只能局部命中。GraphRAG 将知识表示为&lt;strong&gt;实体-关系图谱&lt;/strong&gt;，用图遍历补足向量检索缺失的关联推理能力。本指南从图谱建模出发，系统覆盖实体抽取、图谱构建、检索策略（局部与全局）、与向量检索的混合架构，并给出 Neo4j + LLM 的完整实战。&lt;/p&gt;</description></item><item><title>Neo4j 与 Cypher 查询语言完全指南</title><link>https://plumephp.com/graphdb-neo4j-cypher-guide/</link><pubDate>Tue, 22 Sep 2026 23:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-neo4j-cypher-guide/</guid><description>&lt;h2 id="导语图数据库的普及使者"&gt;导语：图数据库的普及使者&lt;/h2&gt;
&lt;p&gt;Neo4j 是目前最流行、生态最成熟的属性图数据库。它不仅是技术的实现，更推广了图思维的普及——从 2000 年发布至今，Neo4j 已经在欺诈检测、推荐系统、知识图谱、网络安防等领域积累了大量生产级案例。&lt;/p&gt;</description></item><item><title>图数据模型基础：节点、边与属性</title><link>https://plumephp.com/graphdb-data-model-basics/</link><pubDate>Tue, 22 Sep 2026 22:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-data-model-basics/</guid><description>&lt;h2 id="导语为什么关系型数据库处理关联查询很慢"&gt;导语：为什么关系型数据库处理关联查询很慢&lt;/h2&gt;
&lt;p&gt;想象这样一个场景：在一个社交网络中，找到&amp;quot;用户 A 的朋友的朋友中喜欢摄影的人&amp;quot;。&lt;/p&gt;
&lt;p&gt;在关系型数据库中，需要执行多次 JOIN：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- 查找用户 A 的二级好友的兴趣
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;JOIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;friendships&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;JOIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;friend_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;JOIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;friendships&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;JOIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;friend_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;JOIN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;interests&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WHERE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Alice&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AND&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;u1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;AND&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Photography&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;随着深度增加，JOIN 数量线性增长，查询时间呈指数级恶化。&lt;strong&gt;在 6 层深度时，关系型数据库可能需要数分钟甚至更久&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>图数据库选型对比：Neo4j vs JanusGraph vs Dgraph</title><link>https://plumephp.com/graphdb-comparison/</link><pubDate>Tue, 22 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/graphdb-comparison/</guid><description>&lt;h2 id="导语没有最好的图数据库只有最合适的"&gt;导语：没有最好的图数据库，只有最合适的&lt;/h2&gt;
&lt;p&gt;图数据库市场在过去十年快速发展，出现了数十种产品，每种都有自己的设计哲学和适用场景。有的追求极致的查询性能，有的追求无限的水平扩展，有的追求与现有大数据生态的无缝集成。&lt;/p&gt;</description></item><item><title>图数据库专题：从图论基础到知识图谱、图机器学习与生产调优</title><link>https://plumephp.com/posts/graphdb/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/posts/graphdb/</guid><description>&lt;blockquote&gt;
&lt;p&gt;当数据的核心价值在于「关系」而非「记录」时，图数据库便成为最佳选择。从 Facebook 的社交图谱到 Amazon 的商品推荐，从金融反欺诈的风控图谱到 LLM 增强的实体关系检索，图数据库在关联分析场景中的性能优势可达关系型数据库的数十倍甚至百倍。本专题从图论基础出发，带你掌握这一核心数据技术。&lt;/p&gt;</description></item></channel></rss>