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

NebulaGraph中FIND PATH语句变量自定义及报错语法修正咨询

错误原因及修正方案

错误原因

  • LOOKUP语句默认返回包含顶点属性的结果集,直接赋值给$src/$dst后,FIND PATH无法识别集合类型变量作为起点/终点,必须提取具体的顶点ID(vid)。
  • 原语句未通过YIELD指定返回vid,导致变量中没有存储可用的顶点标识,无法被FIND PATH调用。

正确语法写法

场景1:单顶点匹配(LOOKUP仅返回1个结果)

直接提取vid赋值给变量后执行路径查询:

$src = LOOKUP ON table WHERE table.table_name == "da_pubdata_bline_stat_df" YIELD id(vertex) AS vid;
$dst = LOOKUP ON table WHERE table.table_name == "da_pubtb_opt_di" YIELD id(vertex) AS vid;
FIND SHORTEST PATH WITH PROP FROM $src.vid TO $dst.vid OVER * BIDIRECT;

或者使用管道语句串联执行:

LOOKUP ON table WHERE table.table_name == "da_pubdata_bline_stat_df" YIELD id(vertex) AS src_vid | 
LOOKUP ON table WHERE table.table_name == "da_pubtb_opt_di" YIELD id(vertex) AS dst_vid | 
FIND SHORTEST PATH WITH PROP FROM $-.src_vid TO $-.dst_vid OVER * BIDIRECT;

场景2:多顶点匹配(LOOKUP返回多个结果)

使用FOREACH遍历所有匹配的顶点组合,逐一查询路径:

$src_list = LOOKUP ON table WHERE table.table_name == "da_pubdata_bline_stat_df" YIELD id(vertex) AS vid;
$dst_list = LOOKUP ON table WHERE table.table_name == "da_pubtb_opt_di" YIELD id(vertex) AS vid;
FOREACH($src IN $src_list) {
    FOREACH($dst IN $dst_list) {
        FIND SHORTEST PATH WITH PROP FROM $src.vid TO $dst.vid OVER * BIDIRECT;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:55:25