Cypher查询在不执行时会破坏neo4j

时间:2014-06-24 07:18:15

标签: performance neo4j cypher

我在下面的代码段中执行了查询但是如果有两个节点相互遥远,那么neo4j就会被破坏;

START d=node(1), e=node(5)
MATCH p=shortestPath(d-[r:ROUTE*..15]-e)
WHERE all(x in relationships(p) WHERE x.RouteID=head(relationships(p)).RouteID)
RETURN p
limit 1

当我执行节点1到5时,它的工作正常且速度更快。当我执行节点5到45时,它会破坏neo4j。如何解决这个问题?

谢谢,最好的问候

1 个答案:

答案 0 :(得分:3)

试试这个:

START d=node(1), e=node(5)
MATCH p=shortestPath(d-[r:ROUTE*..45]-e)
WITH p, head(relationships(p)).RouteID as RouteID
WHERE all(x in relationships(p) WHERE x.RouteID=RouteID)
RETURN p
limit 1

你为任何路径中的任何关系建立了关系(p),因此这是一个很大的交叉产品。