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

Memgraph v2.0:wShortest聚合函数无法支持duration等时间类型的问题

解决Memgraph v2.0中wShortest函数无法使用duration类型作为权重的问题

Memgraph v2.0的wShortest最短路径聚合函数仅支持数值类型作为权重参数,直接传入duration类型会触发类型不匹配错误,也就是你遇到的:

Error: Query failed: Calculated weight must be numeric, got duration.

解决方案:将duration转换为数值类型

你需要把边的duration属性转换成数值(比如总秒数、小时数等),再传入权重计算逻辑。Memgraph的duration类型支持以下常用转换方法:

  • duration.total_seconds():获取持续时间的总秒数(数值类型)
  • duration.hours:获取持续时间的小时数(数值类型)
  • duration.minutes:获取持续时间的分钟数(数值类型)

修改后的查询语句

以转换为总秒数为例,调整后的查询如下:

MATCH (a {name: "storage"})-[edge_list *wShortest 10 (e, n | e.duration.total_seconds()) fetch_time]->(b)
RETURN *;

如果更关注小时数,也可以改成:

MATCH (a {name: "storage"})-[edge_list *wShortest 10 (e, n | e.duration.hours) fetch_time]->(b)
RETURN *;

额外提示

你的图创建代码中有一处笔误:最后一条边指向的archive节点未被创建,建议修正为已定义的节点(比如archive4),避免查询时出现缺失节点的问题:

(lto)-[:Ride {duration: duration("4H")}]->(archive4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:55:35