Neo4J如何计算指定关系类型的单个祖先的所有后代

时间:2017-11-13 03:45:26

标签: java neo4j spring-data-neo4j-4

Neo4j是否提供本机查询方法来搜索和计算节点的所有后代以获得指定的关系类型,例如REFERRED? 我正在尝试构建一个系统来记录每个引用的“A引用B”类型的关系。需要实时计算由A引起的从A到底的所有引用。 图片可能如下所示:

        A
       / \
      B   C
     / \  /\
    D  E F  G
   / \  / \  \ 
  M   N O  P  Q

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用Cypher查询语言来调查Neo4j图表;当然,对于Cypher,您可以构建一个查询来为您提供问题的答案。

假设您的问题,A节点的id属性为uid ='A',关系类型为'Referred',则查询可能如下所示:

MATCH ({uid:'A'}) -[:Referred *1..]-> (n) RETURN COUNT(DISTINCT n)

这里是第一部分

MATCH ({uid:'A'}) 

表示查询的起点。第二部分

-[:Referred *1..]->

描述了要遵循的关系。下一部分

(n)

为查询命名终止节点,最后

RETURN COUNT(DISTINCT n)

返回这些节点的计数。