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

如何修改AQL最短路径查询以汇总多源到多目标路径长度总和

修改AQL最短路径查询以计算目标顶点的路径长度总和

你的需求是对每个目标顶点,计算它与所有源顶点的路径长度总和,无路径时默认计入10。可以通过以下方式修改查询:

核心调整点

  • 按目标顶点分组,聚合每个目标对应的所有源顶点的路径长度
  • 处理无路径场景:当SHORTEST_PATH返回空结果时,用10替代0作为路径长度
  • 使用SUM函数计算每个目标的路径长度总和

修改后的AQL查询

FOR target IN ["ENTITY_PERSON_ID/d628f984-7ece-3927-97dc-fbc0d8488ffa",
  "ENTITY_PERSON_ID/d478c57b-bb24-3c20-b09d-e2cd04b54a58",
  "ENTITY_PERSON_ID/4dacec6f-c14d-3379-b268-97641d4193e3",
  "ENTITY_PERSON_ID/abbc6fd5-e9fa-375f-b9b3-7eed21e44092"]
FOR start IN ["ENTITY_PERSON_ID/88507ee7-d52e-311f-9394-726fa4886819","ENTITY_PERSON_MAILING_ADDRESS_CITY/5b75a553-11ab-3c1f-a7bd-5afc2cb72fdd"]
LET path = (FOR v, e IN ANY SHORTEST_PATH start TO target GRAPH GraphName RETURN [v, e])
// 单个源到目标的路径长度,无路径则取10
LET single_len = IF(LENGTH(path) == 0, 10, LENGTH(path))
// 按目标顶点分组,聚合所有源的路径长度
COLLECT vertex_id = target INTO lengths = single_len
RETURN {
  vertex_id: vertex_id,
  total_path_len: SUM(lengths)
}

关键逻辑说明

  1. single_len变量:判断路径是否存在,若LENGTH(path)为0说明无路径,赋值10;否则使用实际路径长度(与原查询逻辑保持一致)
  2. COLLECT分组:将同一目标顶点对应的所有源路径长度聚合到数组中
  3. SUM(lengths):对每个目标的路径长度数组求和,得到最终的总长度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:18:24