首页 > 解决方案 > 如何在neo4j中获取两个连接节点的级别(深度)数

问题描述

我使用 neo4j 作为图形数据库将用户的连接详细信息存储到其中。在这里,我想在他们的连接中显示一个用户相对于另一个用户的级别,例如 Linkedin。例如-第一层连接,第二层连接,第三层及第三层以上显示3+。但我不知道使用 neo4j 是如何发生这种情况的。我搜索了这个,但找不到任何解决方案。如果有人知道这一点,请帮助我实现此功能。

标签: spring-bootneo4jgraph-databases

解决方案


要找到2 个特定人之间的最短“连接级别” ,只需获取最短路径并添加 1:

MATCH path = shortestpath((p1:Person)-[*..]-(p2:Person))
WHERE p1.id = 1 AND p2.id = 2
RETURN LENGTH(path) + 1 AS level

注意:您可能希望为可变长度关系模式设置一个合理的上限(例如,[*..6]),以避免查询花费太长时间或在大型数据库中耗尽内存)。无论如何,您可能应该忽略非常远的连接。


推荐阅读