Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 什么';找出Neo4j中两个节点之间是否存在路径的最佳方法是什么?_Database_Neo4j_Path - Fatal编程技术网

Database 什么';找出Neo4j中两个节点之间是否存在路径的最佳方法是什么?

Database 什么';找出Neo4j中两个节点之间是否存在路径的最佳方法是什么?,database,neo4j,path,Database,Neo4j,Path,我有一个Neo4j项目,有10万个节点和500万个关系。 我的问题是: 像“最短路径”这样的算法需要2-4ms才能找到最短路径 MATCH p = shortestPath((p1:Person{nickname:"sievers_amara"})- [:follows*..5]->(p2:Person{nickname:"burghardt_giulia"})) WHERE p1 <> p2 RETURN p MATCH p=shortestPath((p1:Person{

我有一个Neo4j项目,有10万个节点和500万个关系。 我的问题是: 像“最短路径”这样的算法需要2-4ms才能找到最短路径

MATCH p = shortestPath((p1:Person{nickname:"sievers_amara"})-
[:follows*..5]->(p2:Person{nickname:"burghardt_giulia"}))
WHERE p1 <> p2
RETURN p
MATCH p=shortestPath((p1:Person{昵称:“sievers_amara”})-
[:跟随*.5]->(p2:Person{昵称:“burghardt_giulia”}))
其中p1p2
返回p
但我的算法要找出两个节点之间是否有路径需要大约200毫秒。。。 找到最短路径应该比找出是否有路径更难。。。 这是我的代码,用于确定是否存在路径:

MATCH p=(p1:Person{nickname:"sievers_amara"})-[r:follows*1..5]->(p2:Person{nickname:"burghardt_giulia"})
WHERE p1 <> p2
RETURN p LIMIT 1
MATCH p=(p1:Person{昵称:“sievers_amara”})-[r:follows*1..5]->(p2:Person{昵称:“burghardt_giulia”})
其中p1p2
返回p限制1
我能改进什么

编辑:将
PROFILE
放在我的“是否有路径”查询结果前面:

shortestPath()
用于扩展,因此它使用最快的方法检测路径是否存在,并且在找到第一条路径后不会继续扩展

可变长度扩展使用扩展,因此,即使有一条非常短的路径到所讨论的节点,也不能保证会首先探索短路径,因此在这种情况下,在找到第一个匹配之前,会尝试许多路径(并且发现不匹配)(该匹配的路径可能根本不是最短路径).

最短路径()
用于扩展,因此它使用最快的方法检测路径是否存在,并且在找到第一条路径后不会继续扩展


可变长度扩展使用扩展,因此,即使有一条非常短的路径到所讨论的节点,也不能保证会首先探索短路径,因此在这种情况下,在找到第一个匹配之前,许多路径正在尝试(并且发现不匹配)(该匹配的路径可能根本不是最短路径)。

,你已经有了关于Person.nickname的索引?你能在你的第二个查询前面添加一个
配置文件
并发布结果吗?我确实在nickname上创建了一个约束。不确定这是否相同<代码>在(p:Person)断言p上创建约束。昵称是唯一的。我在帖子中添加了一个带有
PROFILE
的屏幕截图。问题是规则模式匹配没有绕过最小化路径长度的图形。因此,规则模式匹配可以先沿着较长的路径进行,绕过较短的路径。因此,
shortPath
更有效。我想,您已经有了关于Person.昵称的索引?您能在第二次查询之前添加一个
配置文件
并发布结果吗?我确实在昵称上创建了一个约束。不确定这是否相同<代码>在(p:Person)断言p上创建约束。昵称是唯一的。我在帖子中添加了一个带有
PROFILE
的屏幕截图。问题是规则模式匹配没有绕过最小化路径长度的图形。因此,规则模式匹配可以先沿着较长的路径进行,绕过较短的路径。因此,
短路径
更有效。