Shortestpath查询返回许多路径而不是一个路径

时间:2016-09-20 17:05:36

标签: neo4j spring-data-neo4j-4 neo4j-ogm

下面的Shortestpath查询返回许多路径而不是一条路径。

  MATCH PATHS=shortestPath((a:Endpoint{ nodeName: 'BRS-PE-SR7-X03B' }) -[*]-(b:Endpoint{ nodeName: 'LDN-PE-SR7-X03C' })  RETURN PATHS

任何人都可以解释它如何计算路径并返回以下场景的最短路径。

我的理解是它应该只返回一条路。我是对的吗?

2 个答案:

答案 0 :(得分:1)

SHORTESTPATH函数查找两个特定节点之间的单个最短路径。

如果多个Endpoint个节点可以具有相同的nodeName值,这可以解释为什么要获得多个最短路径。

如果这是您的结果的原因,此查询返回的2个计数中至少有一个应超过1:

MATCH
  (a:Endpoint{ nodeName: 'BRS-PE-SR7-X03B' }),
  (b:Endpoint{ nodeName: 'LDN-PE-SR7-X03C' })
RETURN COUNT(DISTINCT a), COUNT(DISTINCT b);

答案 1 :(得分:1)

REST API提供的最短路径算法在两个节点之间提供了所有最短路径。这意味着如果在多个路径中最小跳数相同,那么您将获得所有这些最短路径。

https://neo4j.com/docs/rest-docs/current/#rest-api-find-all-shortest-paths)。