neo4j allshortestpaths查询路径不准确问题

基本语法

使用neo4j cypher查询语言的小伙伴都知道cypher提供了两个查询最短路径的特殊函数shortestPath和allShortestPath. 在cypher的语法手册里也可以看到两个函数的作用解释,顾名思义allShortestPath应该就是可以查询两个节点间指定层数内的所有最短路径。

![](https://oscimg.oschina.net/oscnet/35be422f883669a866a2bcdd20386208534.jpg

现象

在真实测试中发现,allShortestPath在已有两点间短路径情况下,会忽略两点之间额外更长的路径。
如下所示:杨紫和林心如之间有A、B、C三条路径,allshortestpaths只能查出来A和B两条(同等长度),较长的C路径被忽略。

建议:

    如果想要获取两点间指定层数内的所有路径,建议直接使用关系查询。(要注意数据量较大时会存在性能问题)

MATCH p=(n1 {thingId:"5d47e1412227360001b516a7"})-[r*0..6]-(n2 {thingId:"5d47e1432227360001b516bb"})

RETURN p
原文地址:https://my.oschina.net/sunyouling/blog/3084152

猜你喜欢

转载自www.cnblogs.com/jpfss/p/11654355.html
今日推荐