Neo4j(四):深度链接查询

需要在Neo4j安装目录中的plugins目录下,放置neo4j-graph-data-science.jar包,这个包可以进行图计算(注意版本,最好使用Neo4j-4-X)。

创建数据:

CREATE

(a:Loc {name: 'A'}),

(b:Loc {name: 'B'}),

(c:Loc {name: 'C'}),

(d:Loc {name: 'D'}),

(e:Loc {name: 'E'}),

(f:Loc {name: 'F'}),

(a)-[:ROAD {cost: 50}]->(b),

(a)-[:ROAD {cost: 50}]->(c),

(a)-[:ROAD {cost: 100}]->(d),

(b)-[:ROAD {cost: 40}]->(d),

(c)-[:ROAD {cost: 40}]->(d),

(c)-[:ROAD {cost: 80}]->(e),

(d)-[:ROAD {cost: 30}]->(e),

(d)-[:ROAD {cost: 80}]->(f),

(e)-[:ROAD {cost: 40}]->(f);

查找最短路径(不带权重):

MATCH p=shortestPath((start:Loc {name: 'A'})-[:ROAD*]->(end:Loc {name: 'F'}))

RETURN p

查找最短路径(带权重):

MATCH (start:Loc {name: 'A'}), (end:Loc {name: 'F'})

CALL gds.alpha.shortestPath.stream({

    nodeProjection: 'Loc',

    relationshipProjection: {

        ROAD: {

            type: 'ROAD',

            properties: 'cost',

            orientation: 'UNDIRECTED'

        }

    },

    startNode: start,

    endNode: end,

    relationshipWeightProperty: 'cost'

})

YIELD nodeId, cost

RETURN gds.util.asNode(nodeId).name AS name, cost

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • neo4j只有4版本以后支持,gds版本为1.3.x以上支持 1、中介/中间中心性 中介中心性指的是一个结点担任其...
    RacyFu阅读 6,017评论 0 0
  • Neo4j 一、什么是neo4j? Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不...
    会飞的蜗牛66666阅读 6,698评论 0 4
  • Neo4j简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入...
    就天边阅读 39,623评论 3 6
  • 由于公司业务需要做图形计算,所以最近一直在找很多关于graphFrame和neo4j的资料 graphFrame:...
    安申阅读 4,059评论 0 1
  • 1.遇到的问题 在使用Neo4j时遇到一个问题,需要导入上百亿数据(同时导入节点和关系),想找一个最合适的方案来导...
    雨笋情缘阅读 8,329评论 0 1