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

Gremlin with Neptune如何基于前序边计算结果过滤边

图结构示意

修正后的Gremlin查询

g.V('abc-01-05')
    .outE('related_to').as('saved_edge')
    // 提前计算时间阈值:初始边的at_millis加1天(86400000毫秒)
    .math('at_millis + 86400000').by('at_millis').as('max_time')
    // 回到IP节点(abc)
    .select('saved_edge').inV()
    // 遍历IP节点的所有出向related_to边
    .outE('related_to')
    // 过滤满足时间条件的边
    .where(values('at_millis').lte('max_time'))
    // 获取边指向的业务节点
    .inV()
    // 去重避免重复返回起点abc-01-05
    .dedup()
    .toList()

调整说明

  1. 原查询错误点:math('saved_edge + 86400001')无法直接引用边标签saved_edge的属性,必须先取出属性值再做计算
  2. 修正了边遍历方向:从IP节点出发找关联业务节点需走outE('related_to'),原查询写为inE方向反向,无法拿到目标节点
  3. 提前计算好时间阈值存入变量max_time,后续过滤直接对比变量即可,语法兼容性更强
  4. 最后增加dedup步骤,避免起点节点重复返回

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:06