{"id":60,"date":"2026-06-29T10:20:18","date_gmt":"2026-06-29T02:20:18","guid":{"rendered":"https:\/\/genetop.top\/index.php\/2026\/06\/29\/falkordb-how-falkordb-maintain-edge\/"},"modified":"2026-06-29T10:20:18","modified_gmt":"2026-06-29T02:20:18","slug":"falkordb-how-falkordb-maintain-edge","status":"publish","type":"post","link":"https:\/\/genetop.top\/index.php\/2026\/06\/29\/falkordb-how-falkordb-maintain-edge\/","title":{"rendered":"FalkorDB \u7684\u8fb9\u5b58\u50a8\u539f\u7406\uff1a\u4e3a\u4ec0\u4e48\u67e5\u90bb\u5c45\u662f O(degree)\uff1f"},"content":{"rendered":"<p>\u5f88\u591a\u4eba\u7b2c\u4e00\u6b21\u770b\u5230 FalkorDB \u7684\u67b6\u6784\u65f6\uff0c\u4f1a\u6709\u4e00\u4e2a\u7591\u95ee\uff1a<\/p>\n<blockquote>\n<p>\u5b83\u4e0d\u7528\u4f20\u7edf adjacency list\uff08\u90bb\u63a5\u94fe\u8868\uff09\uff0c\u800c\u662f\u7528 sparse matrix\uff08\u7a00\u758f\u77e9\u9635\uff09\u7ef4\u62a4\u8fb9\uff0c\u90a3\u5b83\u5230\u5e95\u600e\u4e48\u9ad8\u6548\u627e\u5230\u67d0\u4e2a\u8282\u70b9\u7684\u6240\u6709\u8fb9\uff1f<\/p>\n<\/blockquote>\n<p>\u8fdb\u4e00\u6b65\u8fd8\u4f1a\u95ee\uff1a<\/p>\n<blockquote>\n<p>\u5982\u679c\u90bb\u5c45\u8282\u70b9\u5df2\u7ecf\u8fde\u7eed\u5b58\u50a8\u4e86\uff0c\u4e3a\u4ec0\u4e48\u67e5\u8be2\u590d\u6742\u5ea6\u4ecd\u7136\u662f <code>O(degree)<\/code>\uff0c\u800c\u4e0d\u662f <code>O(1)<\/code>\uff1f<\/p>\n<\/blockquote>\n<h1 id=\"_1\">\u4e00\u3001\u4f20\u7edf\u56fe\u6570\u636e\u5e93\u5982\u4f55\u5b58\u8fb9<\/h1>\n<p>\u4f20\u7edf\u56fe\u6570\u636e\u5e93\uff08\u5982 Neo4j\uff09\u901a\u5e38\u4f7f\u7528\uff1a<\/p>\n<h1 id=\"adjacency-list\">adjacency list\uff08\u90bb\u63a5\u8868\uff09<\/h1>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-text\">A -&gt; B\nA -&gt; C\nA -&gt; D\n<\/code><\/pre>\n<p>\u5185\u90e8\u66f4\u50cf\uff1a<\/p>\n<pre><code class=\"language-text\">A:\n  edge1 -&gt; edge2 -&gt; edge3\n<\/code><\/pre>\n<p>\u5373\uff1a<\/p>\n<ul>\n<li>\u6bcf\u4e2a\u8282\u70b9\u7ef4\u62a4\u81ea\u5df1\u7684\u8fb9\u94fe\u8868<\/li>\n<li>\n<p>\u67e5\u67d0\u8282\u70b9\u6240\u6709\u8fb9\uff1a<\/p>\n<\/li>\n<li>\n<p>\u76f4\u63a5\u904d\u5386\u94fe\u8868\u5373\u53ef<\/p>\n<\/li>\n<\/ul>\n<p>\u56e0\u6b64\u590d\u6742\u5ea6\uff1a<\/p>\n<pre><code class=\"language-text\">O(degree)\n<\/code><\/pre>\n<p>\u5176\u4e2d\uff1a<\/p>\n<pre><code class=\"language-text\">degree = \u8fb9\u6570\u91cf\n<\/code><\/pre>\n<p>\u4f8b\u5982\uff1a<\/p>\n<ul>\n<li>\n<p><code>out_degree<\/code><br \/>\n  \u51fa\u8fb9\u6570\u91cf<\/p>\n<\/li>\n<li>\n<p><code>in_degree<\/code><br \/>\n  \u5165\u8fb9\u6570\u91cf<\/p>\n<\/li>\n<\/ul>\n<h1 id=\"falkordb-sparse-matrix\">\u4e8c\u3001FalkorDB \u5b8c\u5168\u4e0d\u540c\uff1aSparse Matrix<\/h1>\n<p>FalkorDB \u7684\u6838\u5fc3\u8bbe\u8ba1\u4e0d\u662f adjacency list\u3002<\/p>\n<p>\u5b83\u57fa\u4e8e\uff1a<\/p>\n<ul>\n<li>Sparse Matrix<\/li>\n<li>GraphBLAS<\/li>\n<\/ul>\n<p>\u7ef4\u62a4\u6574\u4e2a\u56fe\u3002<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-text\">A(id=0) -&gt; B(id=1)\n<\/code><\/pre>\n<p>\u5185\u90e8\u8868\u793a\uff1a<\/p>\n<pre><code class=\"language-text\">M[0,1] = edge_id\n<\/code><\/pre>\n<p>\u610f\u601d\uff1a<\/p>\n<pre><code class=\"language-text\">source=0\ntarget=1\n<\/code><\/pre>\n<p>\u5b58\u5728\u4e00\u6761\u8fb9\u3002<\/p>\n<h1 id=\"edge-type\">\u4e09\u3001\u6bcf\u79cd Edge Type \u4e00\u4e2a\u77e9\u9635<\/h1>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-cypher\">(:User)-[:FRIEND]-&gt;(:User)\n(:User)-[:LIKES]-&gt;(:Post)\n<\/code><\/pre>\n<p>FalkorDB \u4f1a\u7ef4\u62a4\uff1a<\/p>\n<pre><code class=\"language-text\">FRIEND matrix\nLIKES matrix\n<\/code><\/pre>\n<p>\u8fd9\u6837 traversal \u65f6\uff1a<\/p>\n<p>\u4e0d\u9700\u8981\u626b\u63cf\u6574\u4e2a\u56fe\u3002<\/p>\n<h1 id=\"multi-edge\">\u56db\u3001\u591a\u91cd\u8fb9\uff08Multi-edge\uff09\u5982\u4f55\u7ef4\u62a4<\/h1>\n<p>FalkorDB \u652f\u6301\uff1a<\/p>\n<pre><code class=\"language-text\">A -[:CALL]-&gt; B\nA -[:CALL]-&gt; B\nA -[:CALL]-&gt; B\n<\/code><\/pre>\n<p>\u56e0\u6b64\u77e9\u9635\u683c\u5b50\u4e0d\u80fd\u53ea\u662f\uff1a<\/p>\n<pre><code class=\"language-text\">M[0,1] = 1\n<\/code><\/pre>\n<p>\u800c\u66f4\u50cf\uff1a<\/p>\n<pre><code class=\"language-text\">M[0,1] = [3,8,15]\n<\/code><\/pre>\n<p>\u5373\uff1a<\/p>\n<pre><code class=\"language-text\">edge ids\n<\/code><\/pre>\n<p>\u672c\u8d28\u63a5\u8fd1\uff1a<\/p>\n<ul>\n<li>sparse tensor<\/li>\n<li>compressed adjacency structure<\/li>\n<\/ul>\n<h1 id=\"_2\">\u4e94\u3001\u5982\u4f55\u9ad8\u6548\u627e\u8fb9\uff1f<\/h1>\n<p>\u5f88\u591a\u4eba\u4f1a\u8bef\u4ee5\u4e3a\uff1a<\/p>\n<pre><code class=\"language-text\">0 0 0 1 0 0 1 1 0\n<\/code><\/pre>\n<p>\u610f\u5473\u7740\uff1a<\/p>\n<blockquote>\n<p>\u5fc5\u987b\u626b\u63cf\u6574\u884c\u624d\u80fd\u627e\u5230 1\u3002<\/p>\n<\/blockquote>\n<p>\u5b9e\u9645\u4e0a\u5b8c\u5168\u4e0d\u662f\u3002<\/p>\n<p>\u56e0\u4e3a\uff1a<\/p>\n<h1 id=\"sparse-matrix-0\">Sparse Matrix \u6839\u672c\u4e0d\u5b58 0<\/h1>\n<h1 id=\"sparse-matrix\">\u516d\u3001Sparse Matrix \u771f\u6b63\u5b58\u4ec0\u4e48\uff1f<\/h1>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-text\">[0,0,0,1,0,0,1,1,0]\n<\/code><\/pre>\n<p>\u771f\u5b9e\u5b58\u50a8\u66f4\u50cf\uff1a<\/p>\n<pre><code class=\"language-text\">[3,6,7]\n<\/code><\/pre>\n<p>\u610f\u601d\uff1a<\/p>\n<pre><code class=\"language-text\">index 3 \u6709\u8fb9\nindex 6 \u6709\u8fb9\nindex 7 \u6709\u8fb9\n<\/code><\/pre>\n<p>0 \u5b8c\u5168\u4e0d\u5b58\u5728\u3002<\/p>\n<p>\u56e0\u6b64\uff1a<\/p>\n<p>\u67e5\u8282\u70b9 A \u7684\u90bb\u5c45\uff1a<\/p>\n<pre><code class=\"language-text\">neighbors(A) = [3,6,7]\n<\/code><\/pre>\n<p>\u76f4\u63a5\u8fd4\u56de\u5373\u53ef\u3002<\/p>\n<h1 id=\"csr-csc\">\u4e03\u3001CSR \/ CSC\uff1a\u5de5\u4e1a\u7ea7\u7a00\u758f\u77e9\u9635\u7ed3\u6784<\/h1>\n<p>\u771f\u5b9e\u5b9e\u73b0\u901a\u5e38\u662f\uff1a<\/p>\n<ul>\n<li>CSR\uff08Compressed Sparse Row\uff09<\/li>\n<li>CSC\uff08Compressed Sparse Column\uff09<\/li>\n<\/ul>\n<p>\u4f8b\u5982\uff1a<\/p>\n<p>\u77e9\u9635\uff1a<\/p>\n<pre><code class=\"language-text\">A: 0 0 0 1 0 0 1 1\nB: 1 0 0 0 0 0 0 0\nC: 0 1 0 0 1 0 0 0\n<\/code><\/pre>\n<p>CSR \u53ef\u80fd\u5b58\u6210\uff1a<\/p>\n<pre><code class=\"language-text\">indices = [3,6,7,0,1,4]\nrow_ptr = [0,3,4,6]\n<\/code><\/pre>\n<p>\u89e3\u91ca\uff1a<\/p>\n<ul>\n<li>A \u7684\u6570\u636e\u5728 <code>indices[0:3]<\/code><\/li>\n<li>B \u7684\u6570\u636e\u5728 <code>indices[3:4]<\/code><\/li>\n<li>C \u7684\u6570\u636e\u5728 <code>indices[4:6]<\/code><\/li>\n<\/ul>\n<p>\u4e8e\u662f\uff1a<\/p>\n<p>\u67e5 A \u7684\u6240\u6709\u8fb9\uff1a<\/p>\n<pre><code class=\"language-text\">indices[0:3]\n<\/code><\/pre>\n<p>\u5373\u53ef\u5f97\u5230\uff1a<\/p>\n<pre><code class=\"language-text\">[3,6,7]\n<\/code><\/pre>\n<h1 id=\"odegree\">\u516b\u3001\u4e3a\u4ec0\u4e48\u590d\u6742\u5ea6\u4ecd\u7136\u662f O(degree)\uff1f<\/h1>\n<p>\u8fd9\u662f\u6700\u5bb9\u6613\u8bef\u89e3\u7684\u5730\u65b9\u3002<\/p>\n<p>\u5f88\u591a\u4eba\u4f1a\u95ee\uff1a<\/p>\n<blockquote>\n<p>\u65e2\u7136 <code>[3,6,7]<\/code> \u5df2\u7ecf\u662f\u8fde\u7eed\u5185\u5b58\uff0c<br \/>\n\u76f4\u63a5 memcpy \u4e0d\u5c31\u662f O(1)\uff1f<\/p>\n<\/blockquote>\n<p>\u7b54\u6848\uff1a<\/p>\n<h1 id=\"o1\">\u5b9a\u4f4d\u6570\u7ec4\u662f O(1)<\/h1>\n<p>\u4f46\uff1a<\/p>\n<h1 id=\"ok\">\u904d\u5386\u6570\u7ec4\u4ecd\u7136\u662f O(k)<\/h1>\n<p>\u5176\u4e2d\uff1a<\/p>\n<pre><code class=\"language-text\">k = degree\n<\/code><\/pre>\n<h1 id=\"_3\">\u4e5d\u3001\u7b97\u6cd5\u590d\u6742\u5ea6\u5230\u5e95\u7b97\u4ec0\u4e48\uff1f<\/h1>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-cypher\">MATCH (a)-[e]-&gt;()\nRETURN e\n<\/code><\/pre>\n<p>\u6570\u636e\u5e93\u4e0d\u662f\u53ea\u8fd4\u56de\uff1a<\/p>\n<pre><code class=\"language-text\">\u6570\u7ec4\u6307\u9488\n<\/code><\/pre>\n<p>\u800c\u662f\u5fc5\u987b\uff1a<\/p>\n<ul>\n<li>\u904d\u5386\u6bcf\u6761\u8fb9<\/li>\n<li>\u89e3\u7801 edge object<\/li>\n<li>\u6784\u9020\u7ed3\u679c\u96c6<\/li>\n<li>\u8fd4\u56de\u5ba2\u6237\u7aef<\/li>\n<\/ul>\n<p>\u56e0\u6b64\uff1a<\/p>\n<pre><code class=\"language-text\">for edge in neighbors:\n    emit(edge)\n<\/code><\/pre>\n<p>\u5fc5\u987b\u6267\u884c\uff1a<\/p>\n<pre><code class=\"language-text\">degree \u6b21\n<\/code><\/pre>\n<p>\u6240\u4ee5\u6574\u4f53\u590d\u6742\u5ea6\uff1a<\/p>\n<pre><code class=\"language-text\">O(degree)\n<\/code><\/pre>\n<h1 id=\"output-sensitive-complexity\">\u5341\u3001Output-sensitive Complexity<\/h1>\n<p>\u8fd9\u662f\u4e00\u4e2a\u7ecf\u5178\u6982\u5ff5\uff1a<\/p>\n<h1 id=\"_4\">\u8f93\u51fa\u672c\u8eab\u5927\u5c0f\u4e5f\u7b97\u590d\u6742\u5ea6<\/h1>\n<p>\u4f8b\u5982\uff1a<\/p>\n<p>\u5982\u679c\uff1a<\/p>\n<pre><code class=\"language-text\">A \u6709 100 \u4e07\u6761\u8fb9\n<\/code><\/pre>\n<p>\u5373\u4f7f\uff1a<\/p>\n<pre><code class=\"language-text\">\u627e\u5230\u6570\u7ec4\u8d77\u70b9\n<\/code><\/pre>\n<p>\u53ea\u9700\u8981\uff1a<\/p>\n<pre><code class=\"language-text\">O(1)\n<\/code><\/pre>\n<p>\u4f46\uff1a<\/p>\n<p>\u8fd4\u56de 100 \u4e07\u6761\u8fb9\uff1a<\/p>\n<p>\u4e0d\u53ef\u80fd\uff1a<\/p>\n<pre><code class=\"language-text\">O(1)\n<\/code><\/pre>\n<p>\u56e0\u4e3a\uff1a<\/p>\n<p>\u4f60\u81f3\u5c11\u5f97\u201c\u770b\u4e00\u773c\u201d\u6bcf\u4e2a\u5143\u7d20\u3002<\/p>\n<h1 id=\"falkordb\">\u5341\u4e00\u3001FalkorDB \u4e3a\u4ec0\u4e48\u4ecd\u7136\u5feb\uff1f<\/h1>\n<p>\u56e0\u4e3a\uff1a<\/p>\n<pre><code class=\"language-text\">[3,6,7]\n<\/code><\/pre>\n<p>\u662f\uff1a<\/p>\n<ul>\n<li>\u8fde\u7eed\u5185\u5b58<\/li>\n<li>cache-friendly<\/li>\n<li>SIMD-friendly<\/li>\n<\/ul>\n<p>CPU \u53ef\u4ee5\uff1a<\/p>\n<ul>\n<li>prefetch<\/li>\n<li>vector load<\/li>\n<li>branch prediction<\/li>\n<\/ul>\n<p>\u800c\u4f20\u7edf adjacency list\uff1a<\/p>\n<pre><code class=\"language-text\">edge1 -&gt; edge2 -&gt; edge3\n<\/code><\/pre>\n<p>\u5c5e\u4e8e\uff1a<\/p>\n<h1 id=\"pointer-chasing\">pointer chasing<\/h1>\n<p>\u4f1a\u5bfc\u81f4\uff1a<\/p>\n<ul>\n<li>cache miss<\/li>\n<li>memory stall<\/li>\n<li>branch miss<\/li>\n<\/ul>\n<p>\u56e0\u6b64\uff1a<\/p>\n<p>FalkorDB \u5728\uff1a<\/p>\n<ul>\n<li>\u9ad8 fan-out traversal<\/li>\n<li>\u591a\u8df3 pattern matching<\/li>\n<li>\u56fe\u5206\u6790<\/li>\n<li>GraphRAG<\/li>\n<\/ul>\n<p>\u573a\u666f\u4e2d\u4f18\u52bf\u660e\u663e\u3002<\/p>\n<h1 id=\"neo4j-vs-falkordb\">\u5341\u4e8c\u3001Neo4j vs FalkorDB \u672c\u8d28\u533a\u522b<\/h1>\n<p>Neo4j \u66f4\u50cf\uff1a<\/p>\n<pre><code class=\"language-text\">\u8282\u70b9 + \u8fb9\u94fe\u8868\n<\/code><\/pre>\n<p>\u9002\u5408\uff1a<\/p>\n<ul>\n<li>OLTP<\/li>\n<li>\u5355\u8df3\u67e5\u8be2<\/li>\n<li>\u9ad8\u9891\u8fb9\u66f4\u65b0<\/li>\n<\/ul>\n<p>FalkorDB \u66f4\u50cf\uff1a<\/p>\n<pre><code class=\"language-text\">\u56fe\u8ba1\u7b97\u5f15\u64ce\n<\/code><\/pre>\n<p>\u9002\u5408\uff1a<\/p>\n<ul>\n<li>\u591a\u8df3 traversal<\/li>\n<li>pattern matching<\/li>\n<li>\u56fe\u5206\u6790<\/li>\n<li>\u5411\u91cf\u5316\u8ba1\u7b97<\/li>\n<\/ul>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-cypher\">(A)-[:F]-&gt;(B)-[:F]-&gt;(C)\n<\/code><\/pre>\n<p>Neo4j\uff1a<\/p>\n<pre><code class=\"language-text\">pointer traversal\n<\/code><\/pre>\n<p>FalkorDB\uff1a<\/p>\n<pre><code class=\"language-text\">matrix multiply\n<\/code><\/pre>\n<p>\u5373\uff1a<\/p>\n<pre><code class=\"language-text\">F \u00d7 F\n<\/code><\/pre>\n<p>\u8fd9\u662f\u5b83\u6700\u5927\u7684\u67b6\u6784\u5dee\u5f02\u3002<\/p>\n<h1 id=\"_5\">\u5341\u4e09\u3001\u6700\u7ec8\u603b\u7ed3<\/h1>\n<p>FalkorDB \u7684\u6838\u5fc3\u601d\u60f3\uff1a<\/p>\n<blockquote>\n<p>\u4e0d\u5b58\u201c\u7a7a\u201d<br \/>\n\u53ea\u5b58\u201c\u5b58\u5728\u7684\u8fb9\u201d<\/p>\n<\/blockquote>\n<p>\u56e0\u6b64\uff1a<\/p>\n<pre><code class=\"language-text\">0 0 0 1 0 0 1\n<\/code><\/pre>\n<p>\u5b9e\u9645\u53d8\u6210\uff1a<\/p>\n<pre><code class=\"language-text\">[3,6]\n<\/code><\/pre>\n<p>\u67e5\u8be2\u67d0\u8282\u70b9\u6240\u6709\u8fb9\uff1a<\/p>\n<ul>\n<li>\n<p>\u5b9a\u4f4d\u90bb\u63a5\u6570\u636e\uff1a<\/p>\n<\/li>\n<li>\n<p><code>O(1)<\/code><\/p>\n<\/li>\n<li>\n<p>\u8fd4\u56de\u6240\u6709\u8fb9\uff1a<\/p>\n<\/li>\n<li>\n<p><code>O(degree)<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u5176\u4e2d\uff1a<\/p>\n<pre><code class=\"language-text\">degree = \u5f53\u524d\u8282\u70b9\u8fb9\u6570\u91cf\n<\/code><\/pre>\n<p>\u800c\u4e0d\u662f\uff1a<\/p>\n<pre><code class=\"language-text\">\u6574\u4e2a\u56fe\u7684\u8fb9\u6570\u91cf\n<\/code><\/pre>\n<p>\u8fd9\u5c31\u662f Sparse Matrix \u56fe\u6570\u636e\u5e93\u7684\u6838\u5fc3\u6027\u80fd\u6a21\u578b\u3002<\/p>\n<h1 id=\"vs\">\u5341\u56db\u3001\u8fb9\u5206\u7c7b\u578b vs \u5355\u4e00\u7c7b\u578b\uff0c\u662f\u5426\u5f71\u54cd\u67e5\u8be2\u901f\u5ea6\uff1f<\/h1>\n<p>\u4e00\u4e2a\u5e38\u89c1\u7591\u95ee\uff1a<\/p>\n<blockquote>\n<p>\u65e2\u7136\u5b9a\u4f4d\u8fb9\u662f O(1)\uff0c\u8fd4\u56de\u8fb9\u662f O(degree)\uff0c<br \/>\n\u90a3\u628a\u8fb9\u5f52\u4e3a\u4e00\u79cd\u7c7b\u578b\u8fd8\u662f\u591a\u79cd\u7c7b\u578b\uff0c\u662f\u5426\u5f71\u54cd\u67e5\u8be2\u901f\u5ea6\uff1f<\/p>\n<\/blockquote>\n<p>\u7b54\u6848\uff1a<strong>\u53d6\u51b3\u4e8e\u67e5\u8be2\u662f\u5426\u6307\u5b9a edge type\u3002<\/strong><\/p>\n<h2 id=\"edge-type_1\">\u67e5\u8be2\u6307\u5b9a edge type \u65f6<\/h2>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-cypher\">MATCH (a)-[:FRIEND]-&gt;(b) RETURN b\n<\/code><\/pre>\n<p>FalkorDB \u53ea\u626b\u63cf <code>FRIEND<\/code> \u77e9\u9635\u3002<\/p>\n<p>\u5982\u679c\u628a\u6240\u6709\u8fb9\u90fd\u5f52\u4e3a\u4e00\u79cd\u7c7b\u578b\uff08\u5982 <code>:REL<\/code>\uff09\uff0c\u5219\u77e9\u9635\u5305\u542b\u6240\u6709\u8fb9\uff0cdegree \u66f4\u5927\u3002<\/p>\n<p>\u5206\u591a\u79cd\u7c7b\u578b = \u6bcf\u4e2a\u77e9\u9635\u66f4\u5c0f = \u904d\u5386\u66f4\u5c11 = <strong>\u66f4\u5feb<\/strong>\u3002<\/p>\n<h2 id=\"edge-type_2\">\u67e5\u8be2\u4e0d\u6307\u5b9a edge type \u65f6<\/h2>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre><code class=\"language-cypher\">MATCH (a)-[]-&gt;(b) RETURN b\n<\/code><\/pre>\n<p>FalkorDB \u9700\u8981\u5408\u5e76\u591a\u4e2a\u77e9\u9635\u7684\u7ed3\u679c\u3002<\/p>\n<p>\u6b64\u65f6\uff1a<\/p>\n<ul>\n<li>\u603b\u904d\u5386\u91cf\u76f8\u540c\uff08\u90fd\u662f\u603b degree\uff09<\/li>\n<li>\u591a\u7c7b\u578b\u6709\u5c11\u91cf\u5408\u5e76\u5f00\u9500<\/li>\n<li>\u5355\u7c7b\u578b\u76f4\u63a5\u904d\u5386\u4e00\u4e2a\u77e9\u9635<\/li>\n<\/ul>\n<p>\u5dee\u5f02\u6781\u5c0f\uff0c\u8fd1\u4f3c<strong>\u65e0\u5f71\u54cd<\/strong>\u3002<\/p>\n<h2 id=\"_6\">\u603b\u7ed3<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u573a\u666f<\/th>\n<th>\u5355\u7c7b\u578b vs \u591a\u7c7b\u578b<\/th>\n<th>\u5f71\u54cd<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u67e5\u8be2\u6307\u5b9a edge type<\/td>\n<td>\u591a\u7c7b\u578b\u66f4\u5feb<\/td>\n<td>\u53ea\u626b\u63cf\u5bf9\u5e94\u77e9\u9635\uff0cdegree \u66f4\u5c0f<\/td>\n<\/tr>\n<tr>\n<td>\u67e5\u8be2\u4e0d\u6307\u5b9a edge type<\/td>\n<td>\u51e0\u4e4e\u65e0\u5dee\u522b<\/td>\n<td>\u603b degree \u76f8\u540c\uff0c\u591a\u7c7b\u578b\u6709\u5c11\u91cf\u5408\u5e76\u5f00\u9500<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5b9e\u9645\u5efa\u6a21\u5efa\u8bae\uff1a<\/p>\n<blockquote>\n<p>\u5206\u7c7b\u578b\u662f\u66f4\u597d\u7684\u5b9e\u8df5\u3002<br \/>\n\u5927\u591a\u6570\u5b9e\u9645\u67e5\u8be2\u90fd\u4f1a\u6307\u5b9a\u5173\u7cfb\u7c7b\u578b\uff0c\u5206\u7c7b\u578b\u80fd\u663e\u8457\u51cf\u5c11\u9700\u8981\u904d\u5386\u7684\u8fb9\u6570\u91cf\u3002<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u5f88\u591a\u4eba\u7b2c\u4e00\u6b21\u770b\u5230 FalkorDB \u7684\u67b6\u6784\u65f6\uff0c\u4f1a\u6709\u4e00\u4e2a\u7591\u95ee\uff1a \u5b83\u4e0d\u7528\u4f20\u7edf adjacency list\uff08\u90bb\u63a5\u94fe [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59],"tags":[55,51,54,53,58,52,57,56],"class_list":["post-60","post","type-post","status-publish","format-standard","hentry","category-falkordb","tag-csr","tag-falkordb","tag-graphblas","tag-53","tag-58","tag-52","tag-57","tag-56"],"_links":{"self":[{"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/posts\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":0,"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/posts\/60\/revisions"}],"wp:attachment":[{"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/media?parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/categories?post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/genetop.top\/index.php\/wp-json\/wp\/v2\/tags?post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}