【问题标题】:Shortestpath query returns many paths instead of one path最短路径查询返回多条路径而不是一条路径
【发布时间】:2016-09-20 17:05:36
【问题描述】:

以下最短路径查询返回多条路径而不是一条路径。

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

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

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

【问题讨论】:

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


    【解决方案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);
    

    【讨论】:

    • 感谢cybersam。我会检查节点是否具有相同的值
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      相关资源
      最近更新 更多