Neo4j 如何在密码查询中过滤掉循环

Neo4j 如何在密码查询中过滤掉循环,neo4j,cypher,Neo4j,Cypher,我正在玩一个网络技术的清单。 我得到(): 网卡(绿色) 开关(蓝色) 端口(红色) 端口是网卡或交换机的一部分。端口通过“CON”双向连接 如果我现在想得到从HCA1到HCA2的路径,我不仅仅是得到了路径 hca1->hca1\u端口->sw\u输入端口->sw->sw\u输出端口->hca2\u端口->hca2以及通过交换机0和交换机1的环路 我的查询如下所示: START a=node:node_auto_index(name="Hca1"), b=node:node_auto_i

我正在玩一个网络技术的清单。 我得到():

  • 网卡(绿色)
  • 开关(蓝色)
  • 端口(红色)
端口是网卡或交换机的一部分。端口通过“CON”双向连接

如果我现在想得到从HCA1到HCA2的路径,我不仅仅是得到了路径
hca1->hca1\u端口->sw\u输入端口->sw->sw\u输出端口->hca2\u端口->hca2
以及通过交换机0和交换机1的环路

我的查询如下所示:

START a=node:node_auto_index(name="Hca1"),  
b=node:node_auto_index(name="Hca2")
MATCH p=a-[r*2..15]-b
return a,b,p`
结果是:

如何查询没有循环的直路径?有人吗

干杯
克里斯汀

啊,酷的所有捷径似乎都适合我

START a=node:node_auto_index(name="Hca1"),
      b=node:node_auto_index(name="Hca2")
MATCH p= allShortestPaths((a)-[*]-(b))
return a,b,p
结果在该图中


谢谢大家。

哦,最短路径也在起作用

如果我推一个更大的拓扑(CLOS,它有很多AllShortestPath),AllShortestPath将非常大

START a=node:node_auto_index(name="Hca1"),       
      b=node:node_auto_index(name="Hca6")
MATCH p= allShortestPaths((a)-[*]-(b))
RETURN a,b,p
返回:

其中只有一个:

MATCH (start:HCA { name:"Hca1" }),(end:HCA { name:"Hca6" }),
p = shortestPath((start)-[*..15]-(end))
RETURN p

结果:

Hey,我不会给出完整的答案,因为这是重复的点。因此1.您可能希望使用带有标签的新索引。2.您可以查看最短路径。这两个点都在neo4j文档中。OP我认为没有理由在这里使用
CON
的双向链接,除非您在上有不同的属性这些关系中的每一个。你可以在任意方向上遍历关系,这些额外关系的引入会导致一些循环。你可能应该在这里调整你的模型。嘿,伙计们,我正在建模的网络技术使用目标路由,我正计划将传出路由添加到关系中,这就是为什么我有两段感情。