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

在Memgraph中运行Dijkstra算法报错:WSHORTEST函数不存在

解决Memgraph中加权最短路径查询的语法错误

你遇到的问题是使用了Memgraph不支持的语法,WSHORTEST并非合法的函数或路径量词格式。要基于节点Euro属性、仅通过:MarriedTo关系查找加权最短路径,可采用以下两种正确写法:

写法1:使用weightedShortestPath()内置函数

MATCH path = weightedShortestPath(
  (n {id: 0})-[:MarriedTo*]-(m {id: 9}),
  node(node) | node.Euro
)
UNWIND nodes(path) AS node
RETURN node.id;
  • 第一个参数限定路径模式:仅通过:MarriedTo关系连接起始节点(id:0)和目标节点(id:9)
  • 第二个参数定义权重规则:node(node) | node.Euro表示将路径中每个节点的Euro属性作为加权计算依据

写法2:使用*WSHORTEST路径量词

MATCH path = (n {id: 0})-[:MarriedTo *WSHORTEST (weight: node(n).Euro)]-(m {id: 9})
UNWIND nodes(path) AS node
RETURN node.id;
  • *WSHORTEST (weight: node(n).Euro)明确指定查找加权最短路径,权重取自路径节点的Euro属性
  • 若需要返回多条加权最短路径,可在*WSHORTEST后添加数字(如*WSHORTEST 3返回前3条)

额外提示

如果你的加权逻辑是基于关系属性而非节点属性,只需将权重表达式改为rel(rel).<目标属性名>即可;同时请确保起始节点id:0和目标节点id:9存在且通过:MarriedTo关系可达。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:45:05