zoukankan      html  css  js  c++  java
  • All shortest paths between a set of nodes

    Consider a number of arbitrary nodes, A,B,C,D,E,F,…​..

    I wish to return all of the shortest paths between these nodes. The nodes may have many edges between them, but anticipate a maximum of 4. The graph is complex and non hierarchical (if this makes sense – any node may point to any other node). A typical node has the form: match (n:Entity { name: 'xyz' })

    How would I write the match expression to return the shortest paths between the above nodes, in no specific order?

    Solution

    1. Find the set of nodes using an indexed lookup operation
    2. Collect them into a list
    3. Unwind the list twice, once for every side of the path
    4. Remove inverse pairs by id comparison
    5. match and return the paths
    MATCH (n:Entity) where n.name IN [names]
    WITH collect(n) as nodes
    UNWIND nodes as n
    UNWIND nodes as m
    WITH * WHERE id(n) < id(m)
    MATCH path = allShortestPaths( (n)-[*..4]-(m) )
    RETURN path

    原文地址:https://neo4j.com/developer/kb/all-shortest-paths-between-set-of-nodes/

  • 相关阅读:
    [收藏] WAP网关应用
    关于Symbian编程的基础知识— 基本数据类型
    PDU短信的编码一般规则
    同级方法异步调用(2016.05.04更新)
    OpenStack Manila发展动态系列Austin峰会
    OpenStack Cinder发展动态系列Austin峰会
    OpenStack Neutron单网卡桥接模式访问外网
    每日一测3(结构和类的异同)
    每日一测2(关于构造函数)
    每日一测1(带命令行参数运行)
  • 原文地址:https://www.cnblogs.com/jpfss/p/11652218.html
Copyright © 2011-2022 走看看