如何仅使用某些关系和某些节点来查找路径?

时间:2013-06-02 03:01:25

标签: neo4j cypher

画出随机覆盖着黑白棋子的棋盘。每件都垂直,水平和对角连接到它的邻居。我想找到两块之间最短的路径,只使用黑色碎片和对角关系。

我可以看到如何限制路径中的关系,但不能限制关系和节点的组合。

我需要能够形成一个查找最短路径的查询,如:

匹配p = n0-shortestpath(anynumberof( - [对角关系] - [黑色节点]) - [对角线关系]) - nf

您可以向我提供有关形成Cypher查询的任何帮助,我们将不胜感激。 谢谢。

编辑:另一种方法是...... match p = shortestpath(n0 - [* .. 999:对角线和此关系的目标节点的颜色为黑色] -nf)

但我仍然不确定如何引用该关系的目标节点。

另一种替代方法是选择具有对角线参考的所有路径,并根据碎片(节点)的颜色聚合一些值,如0表示黑色,1表示白色,这样只有仅使用黑色碎片的路径才会聚集0我在这里担心的是,这会导致彻底未经修剪的详尽搜索。

匹配p = n0 - [* .. 999:对角线] -nf ......(聚合) 匹配具有aggregation = 0的路径 ...(选择最短路径)

0 个答案:

没有答案