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

如何构建Cypher查询,根据节点F的non-direct属性生成O到F的指定路径

根据节点属性返回对应路径的Cypher实现

问题场景

现有图结构如下:

O
   |
   A
   |
   B 
  / \
 C   E
/     \
D      F

需要查询从节点O到节点F的路径,节点F包含non-direct属性:

  • 当属性值为false时,返回直连路径 O-A-B-E-F
  • 当属性值为true时,返回绕路路径 O-A-B-C-D-C-B-E-F(先到B,绕行至D后返回B,再前往F)

Cypher查询代码

以下是可直接使用的查询语句,请根据实际节点标签、关系类型和标识属性调整:

// 定位目标节点F
MATCH (f:F {name: 'F'})
// 根据non-direct属性匹配对应路径模式
MATCH path = 
  CASE f.non-direct
    WHEN false THEN (o:O {name: 'O'})-[:*]->(b:B)-[:*]->(f)
    WHEN true THEN (o:O {name: 'O'})-[:*]->(b:B)-[:*]->(c:C)-[:*]->(d:D)<-[:*]-(c)-[:*]->(b)-[:*]->(f)
  END
// 返回最终路径
RETURN path AS targetPath

关键说明

  • 代码中的:O、:B等是节点标签,name是节点的标识属性,请替换成你实际使用的标签和属性(比如用id代替name)
  • [:*]表示匹配任意长度的关系链,如果你的图中关系有明确类型(比如[:CONNECTS]),可以替换为[:CONNECTS*]来提升查询精度
  • 如果需要严格遵循指定节点顺序(不能跳过中间节点),可以把[:*]换成明确的单步关系,比如(o)-[:CONNECTS]->(a)-[:CONNECTS]->(b)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:18:21