如何使用Cypher在Neo4j中实现AllPath或AllSimplePath算法?
我试图在neo4j数据库中找到两个节点之间的所有路径 我用于获取所有路径的查询返回错误,而当我将AllSimplePath更改为shortestPath以获取最短路径时,该查询会起作用:如何使用Cypher在Neo4j中实现AllPath或AllSimplePath算法?,neo4j,cypher,Neo4j,Cypher,我试图在neo4j数据库中找到两个节点之间的所有路径 我用于获取所有路径的查询返回错误,而当我将AllSimplePath更改为shortestPath以获取最短路径时,该查询会起作用: MATCH (from), (to) , paths = allSimplePaths((from)-[*]->(to)) WHERE from.ID ='3007' AND to.ID in ['5575','8150', '3674'] Return paths 返回错误消息: Invalid
MATCH (from), (to) ,
paths = allSimplePaths((from)-[*]->(to))
WHERE from.ID ='3007' AND to.ID in ['5575','8150', '3674']
Return paths
返回错误消息:
Invalid input '(': expected an identifier character, node labels, a property
map, a relationship pattern, ',', USING, WHERE, LOAD CSV, START, MATCH, UNWIND,
MERGE, CREATE, SET, DELETE, REMOVE, FOREACH, WITH, CALL, RETURN, UNION, ';' or
end of input (line 2, column 23 (offset: 82))
"paths = allSimplePaths((from)-[*]->(to)) "
neo4j REST API支持
所有SimplePath
和所有路径
,但不支持Cypher
要获得与所有路径
等效的路径,只需执行以下操作:
MATCH (from), (to), paths = (from)-[*]->(to)
WHERE from.ID ='3007' AND to.ID in ['5575','8150', '3674']
Return paths
您将需要使用RESTAPI来使用
所有SimplePath
是否确实要使用“所有路径”?这可能会产生大量数据,并对性能产生严重影响。我仍在用我的数据进行实验,以找到最佳查询。