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

如何在含Source、Destination节点的图中查找指向各目标节点的符合要求的路径

解决方案

你可以通过图查询语言Cypher实现该需求,具体逻辑分为两步:先统计每个Destination节点对应所有入路径的最大长度,再过滤出长度小于该最大值的路径即可。

单目标Destination节点查询(以示例中节点J为例)

MATCH path = (source:Source)-[:FEEDS_INTO*]->(dest:Destination {name: 'J'})
WITH dest, collect(path) AS allPaths, max(length(path)) AS maxPathLength
UNWIND allPaths AS path
WHERE length(path) < maxPathLength
RETURN path

全量Destination节点批量查询

如果需要一次性查询所有Destination节点的符合要求的路径,可以用如下语句:

MATCH path = (source:Source)-[:FEEDS_INTO*]->(dest:Destination)
WITH dest, collect(path) AS allPaths, max(length(path)) AS maxPathLength
UNWIND allPaths AS path
WHERE length(path) < maxPathLength
RETURN dest.name AS destinationName, collect(path) AS validPaths

补充说明:语句中的length(path)返回的是路径包含的关系数量,和常规路径长度计算逻辑一致。如果你的图中Source节点间存在环路,可以给路径匹配添加长度上限避免死循环,比如将[:FEEDS_INTO*]修改为[:FEEDS_INTO*1..10],可根据你的业务场景调整上限值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:07