gpt4 book ai didi

neo4j - 密码查询 : find path by relationship properties

转载 作者:行者123 更新时间:2023-12-01 07:42:24 24 4
gpt4 key购买 nike

我的问题非常接近这个主题:Cypher query: Finding all paths between two nodes filtered by relationship properties但我想做的是找到沿路径增加关系属性值的路径。因此,在之前的主题中,示例解决方案路径(从 A 到 D)将是:

A->DA->B->D

我使用了上一个主题的解决方案

START a=node(1), d=node(4) 
MATCH p=a-[r:ACTIVATES*..]->d
WITH head(relationships(p)) as r1,p
WHERE all(r2 in relationships(p)
where r2.temperature > r1.temperature)
return p;

它适用于这个例子。问题是当存在超过 2 个关系的路径时,例如:

    activates:50      activates:70      activates:60
(A)-------------->(B)-------------->(C)-------------->(D)

不幸的是这条路径也匹配。

有没有办法用 cypher 编写这个查询,或者我必须改用 gremlin?

感谢任何建议。

更新:我需要的是一些类似(伪编程语言)的构造:

WITH head(relationships(p)) as r1,p
FOREACH(r2 in tail(relationships(p)):
r1.temperature < r2.temperature, r1 = r2)

但在可能的情况下使用密码。

最佳答案

这个在我的例子中有效

START a=node(1), d=node(4) 
MATCH p=a-[r:ACTIVATES*..]-d
WITH head(relationships(p))as r1,last(relationships(p))as r2,p
WHERE all(r3 in relationships(p)
where r2.temperature > r1.temperature AND NOT r3.temperature < r1.temperature)
return p;

更新:有没有办法用节点属性来做到这一点?

关于neo4j - 密码查询 : find path by relationship properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15948417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com