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

如何在FalkorDb中动态修改返回路径的指定边属性值?

FalkorDb 路径属性动态替换查询问题

我正在使用FalkorDb 4.0.5(Redis Graph的停止维护分叉项目),以下是我的简化测试案例:

GRAPH.QUERY g 
// 创建4个节点:
"CREATE (w:Work{name:'Work'}), (a:City{name:'A'}), (b:City{name:'B'}), (c:City{name:'C'}),

// 创建带有`x`属性的"Road"边:
(w)-[r0:Road{x:0}]->(a), (a)-[r1:Road{x:1}]->(b), (b)-[r2:Road{x:2}]->(c), 

// 添加同样带有`x`属性的"Accom"边:
(a)-[a1:Accom{x:10}]->(h1:Hotel{name:'Hilton'}), 
(a)-[a2:Accom{x:11}]->(h2:Hotel{name:'Marriot'}), 
(c)-[a3:Accom{x:12}]->(h3:Hotel{name:'Marriot'}) 

RETURN w,a,b,c,r0,r1,r2,a1,h1,a2,h2,a3,h3"

原始Road路径为:

(Work)-[x:0]-(A)-[x:1]-(B)-[x:2]-(C)

我需要编写查询语句,为每个连接到A节点的Hotel生成一条从Work到C的路径,路径中对应位置的Road边x属性要替换为关联Accom边的x值,示例如下:

Hilton对应的路径:  (Work)-[x:10]-(A)-[x:1]-(B)-[x:2]-(C)
Marriot对应的路径: (Work)-[x:11]-(A)-[x:1]-(B)-[x:12]-(C)

{其他连接到A的Hotel同理}

目前仅查询Road边的语句为:

GRAPH.QUERY g "MATCH path=(p)-[r:Road*]->(c) RETURN path"

该语句返回原始Road路径,但如何编写查询才能得到上述动态修改后的路径?是否需要先执行以下查询获取所有数据,再在Java/Quarkus应用中处理?

GRAPH.QUERY g "MATCH path=(p)-[r]->(c) RETURN path"

执行结果:

1) 1) "[(0), [0], (1)]"
2) 1) "[(1), [1], (2)]"
3) 1) "[(1), [3], (4)]"
4) 1) "[(1), [4], (5)]"
5) 1) "[(2), [2], (3)]"
6) 1) "[(3), [5], (6)]"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 06:42:44