如何计算与特定节点相关的所有其他节点

时间:2015-06-02 15:20:30

标签: neo4j cypher py2neo

路径代表用户'浏览历史

上面的路径意味着有一个用户浏览过页面A - >第B页 - >第C页

下部路径表示一个用户浏览页面X->第Y页 - >第B页 - >第C页

例如,如果我想用第C页计算相关性

预期的anwser在桌面上

或者,如果我想找到与第B页的所有相关性

anwser应该是

  • 第A:1页
  • 第X页:1
  • 第Y页:1
  • 第C页: 0

我如何通过 py2neo 密码查询

获得预期的anwser

1 个答案:

答案 0 :(得分:4)

如果你的" b"节点是不同的节点,因此您有完整的不同路径,此查询有效:

MATCH (b:Page)
WHERE b.id = 'b'
MATCH (b)<-[:LINK_TO*..10]-(referer)
RETURN referer.id, count(*)

结果:

y   1
a   1
x   1

此处的测试控制台http://console.neo4j.org/r/sb5qmq

'b'更改c以查看b的计数为2

b   2
y   1
a   1
x   1

修改

如果你的节点&#39; b&#39;是相同的,你可以这样做:

MATCH (b:Page { id:'b' })
WITH b
MATCH (p:Page)
WHERE p <> b
OPTIONAL MATCH (p)-[r:LINK_TO*..3]->(b)
RETURN p.id, count(r)

http://console.neo4j.org/r/prb2my