2
我的问题与此主题非常接近:Cypher query: Finding all paths between two nodes filtered by relationship properties但我想要做的是找到沿路径具有递增的关系属性值的路径。因此,在这种previos主题例如溶液路径(从A到d)将是:Cypher查询:通过关系属性查找路径
A-> d和A-> 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)
此路径不幸匹配。
有没有办法如何写这个查询在密码或我将不得不使用gremlin?
感谢您的任何建议。
更新:我需要的是一些建筑像(伪编程语言):
WITH head(relationships(p)) as r1,p
FOREACH(r2 in tail(relationships(p)):
r1.temperature < r2.temperature, r1 = r2)
但暗号,如果它是更多钞票。
嗨。谢谢你的答案。但是这对我不起作用。这个实际匹配**(A) - 50 - >(B) - 70 - >(C) - 60 - >(D)**但我只需要匹配**(A) - 50→(B)→60→(C)→70→(D)** – cernej 2013-04-11 20:36:07
理论上可以添加具有这种属性的特殊节点。但在我的情况下,它会导致极大和复杂的图(现在我的图有100k +的节点,我认为这种变化会导致100百万以上的节点) – cernej 2013-04-12 09:26:37
如果节点属性可用于增量属性路径查找te,您可以添加到你的现有节点的关系属性值就像这个'foreach(r in relationship(p): FOREACH(x in nodes(p):SET x.value = r.value))''。 – SotirisTsartsaris 2013-04-13 10:32:01