查找与其他唯一节点的连接最多的节点

时间:2018-12-04 01:44:36

标签: neo4j cypher

给出:

  • 两个节点标签:
    • 1000个(:A)节点
    • 1000个(:B)节点
  • 约束:
    • CREATE CONSTRAINT ON (a:A) ASSERT a.id IS UNIQUE;
    • CREATE CONSTRAINT ON (b:B) ASSERT b.id IS UNIQUE;
  • 一种单向关系类型:
    • 4000个[:RELATED_TO]关系
  • 多个(a:A)-[:RELATED_TO]->(b:B)路径
    (意味着,同一节点(a:A)可能多次与同一节点(b:B)相关)

我正在尝试运行一个查询,该查询将显示连接到图中最大数量其他唯一节点的节点的路径。例如,如果节点(a1:A)(a2:A)(a3:A)(a4:A)至少都连接到(b:B)一次,那么其他{ {1}}连接到图形中其他位置的三个以上唯一的(:B)节点,我希望Neo4j浏览器在中心显示(:A),在{{1 }} 周围。我觉得我最大的挑战是我无法弄清如何避免计算多个(b:B)路径。

如有必要,我很乐意提供更多背景信息。预先感谢!

1 个答案:

答案 0 :(得分:1)

此查询使用aggregating function COLLECT(使用DISTINCT运算符来限定其参数)以返回与最不同的{{1 }}节点,以及那些B节点:

A