You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Neo4j GDS原生投影创建图时报错该如何解决?

问题解决方案

报错根因

  • 你将图创建、节点匹配、最短路径估算三类语句放在同一个Cypher查询中执行,gds.graph.create 存储过程在嵌套查询场景下没有显式通过YIELD声明返回值,触发了Cypher的语法限制。
  • 额外存在关系类型不匹配问题:你创建的关系类型为小写的Road,但创建图时传入的是大写的ROAD,该问题会导致后续算法执行时无有效关系加载,需要同步修正。

分步操作

1. 执行节点与关系创建语句

删除原语句末尾多余的WITH a, b,c,d,e,f,单独执行:

CREATE (a: Location {name: "A" }), (b: Location {name: "B" }), (c: Location {name: "C" }), (d: Location {name: "D" }), (e: Location {name: "E" }), (f:Location{name: "F" }), (a)-[:Road {cost:50}]->(b), (a)-[:Road {cost:50}]->(c), (a)-[:Road {cost:100}]->(d), (b)-[:Road {cost:40}]->(d), (c)-[:Road {cost:40}]->(d), (c)-[:Road {cost:80}]->(e), (d)-[:Road {cost:30}]->(e), (d)-[:Road {cost:80}]->(f), (e)-[:Road {cost:40}]->(f)

2. 执行图创建语句

修正关系类型大小写,同时添加YIELD声明返回值,单独执行:

CALL gds.graph.create( 'myGraph', 'Location', 'Road', { relationshipProperties: 'cost' } )
YIELD graphName, nodeCount, relationshipCount
RETURN graphName, nodeCount, relationshipCount

执行后验证返回的nodeCount为6、relationshipCount为10,说明图创建正常。

3. 执行最短路径估算语句

单独执行以下语句即可得到预期结果:

MATCH (start:Location{name:"A"}), (end:Location{name:"F"})
CALL gds.shortestPath.dijkstra.write.estimate('myGraph', { startNode: start, endNode: end, relationshipWeightProperty: 'cost', writeRelationshipType: 'PATH' }) 
YIELD nodeCount, relationshipCount, bytesMin, bytesMax, requiredMemory 
RETURN nodeCount, relationshipCount, bytesMin, bytesMax, requiredMemory

补充说明

如果需要将多个语句合并为同一个查询执行,每个存储过程调用都必须显式声明YIELD的返回字段,无需要用到的返回值可以用YIELD * 兼容语法要求。

内容的提问来源于stack exchange,提问作者Madhumita Tripathy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:54:02