• 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/

  • 相关阅读:
    linux软硬链接
    yum配置文件位置
    What is Docker?
    easy_install下载地址及安装
    python setuptools安装
    django--模板
    django基础PROJECT APP View template
    flask+uswgi+nginx+python3.6的venv发布网站ubuntu14.04
    Mixnode 让操作网络资源和数据库一样简单,不一样的爬虫!
    React Native vs. Cordova.
  • 原文地址:https://www.cnblogs.com/jpfss/p/11652218.html
Copyright © 2020-2023  润新知