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

如何从指定formula节点出发查询多关系关联的目标节点?

解决方案

你需要调整查询路径,覆盖f1通过pNode关联到f2的路径,同时保留原有的f1直接/间接关联f4、f5的路径,并且过滤掉带simulation_id属性的边。以下是可行的查询语句:

MATCH (node1:formula {model_id: 1})
// 获取f1直接/间接通过influences关联的节点
OPTIONAL MATCH (node1)-[:influences* (r, n | r.simulation_id IS NULL)]->(n:formula)
// 获取通过pNode关联的f2节点
OPTIONAL MATCH (node1)<-[:has]-(p:product_sku)-[:influences {simulation_id: NULL}]->(m:formula)
// 合并结果并去重
RETURN DISTINCT COALESCE(n, m) AS target_node
WHERE target_node IS NOT NULL

原查询问题分析

原查询仅匹配了formula节点之间的influences路径,但f2是通过product_sku节点中转的,路径为f1 <-[:has]- pNode -[:influences]-> f2,不在原查询的路径范围内,所以无法被获取到。

新查询说明

  1. 第一部分OPTIONAL MATCH保留你原有的逻辑,获取f4、f5节点;
  2. 第二部分OPTIONAL MATCH通过反向的has边找到关联的pNode,再通过无simulation_id的influences边获取f2节点;
  3. 最后用COALESCE合并两种路径的结果,DISTINCT去重,WHERE过滤掉空值,得到所有目标节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:05:14