使用cypher的复杂路径查询

时间:2016-04-26 17:12:13

标签: neo4j cypher

我在neo4j中有一个句子图,我想知道如何进行一个复杂的查询,它将以一个带有:WORD标签的节点开始和结束,并返回它们之间的路径。

关键是我希望它具有不同的长度,并且只返回通过具有某些属性的节点的路径。我想要像:

MATCH p=((p1:Word)-[r*0..4](***)-(p2:Word))
WHERE v:Variable {property = value} 
RETURN p1,p2,p AS Path, length(p) AS PathSize 
ORDER BY PathSize

***:这里我想将路径中间的节点命名为v,并仅过滤v具有特定属性的路径。有谁知道怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

[EDITED]

这可能就是你要找的东西:

MATCH p=(p1:Word)-[*0..4]-(p2:Word)
WHERE ALL(v IN NODES(p) WHERE v.property = value)
RETURN p1, p2, p AS Path, LENGTH(p) AS PathSize 
ORDER BY PathSize;