我尝试匹配一组节点中的所有路径(最多一定长度)。我可以通过发出以下查询来成功完成此操作:
MATCH (n) WHERE ID(n) IN [1, 2, 3, 4, 5]
MATCH (m) WHERE ID(m) IN [1, 2, 3, 4, 5]
MATCH paths = allShortestPaths((n)-[*..3]-(m))
RETURN paths
我对结果本身及其速度感到满意。我不明白的是,是否有一种方法可以定义一个变量来定义集合[1,2,3,4,5]一次。排序:
x = [1, 2, 3, 4, 5]
MATCH (n) WHERE ID(n) IN x
MATCH (m) WHERE ID(m) IN x
MATCH paths = allShortestPaths((n)-[*..3]-(m))
RETURN paths
这可能吗?我尝试了几种替代方案(使用WITH和AS),但没有运气。
由于
答案 0 :(得分:1)
使用:
WITH [1, 2, 3, 4, 5] AS x
如:
WITH [1, 2, 3, 4, 5] AS x
MATCH (n) WHERE ID(n) IN x
MATCH (m) WHERE ID(m) IN x
MATCH paths = allShortestPaths((n)-[*..3]-(m))
RETURN paths
顺便说一句,neo4j-community-2.2.0-M03似乎有一个回归,导致上述查询出错。 M02似乎没有问题。