我有一个图,其中每个节点代表一个 java 类,每个节点都有一个名为命名空间的属性。我想匹配起始节点和最终节点共享一个命名空间但所有中间节点不共享该命名空间的模式。对于有 3 个类(A 类 -> B 类 -> C 类)的情况,我有:
START inside1 = node(*)
match inside1 -[:USES]-> outside1 -[:USES] -> inside2
where inside1.namespace <> outside1.namespace
and inside2.namespace = inside1.namespace
return inside1.name, outside1.name, inside2.name
这似乎工作正常。当我尝试扩展它时,我尝试了:
START inside1 = node(*)
match inside1 -[:USES]-> outside1 -[:USES*] -> inside2
where inside1.namespace <> outside1.namespace
and outside1.namespace <> inside1.namespace
and inside2.namespace = inside1.namespace
return inside1.name, outside1.name, inside2.name
问题是我不想要任何中间节点与 inside1 共享相同命名空间的路径。所以我的问题是,无论如何我可以告诉它“当你点击一个名称空间等于 inside1.namespace 的节点时停止”?
谢谢。