【问题标题】:How do I count all the other nodes related to a specific node如何计算与特定节点相关的所有其他节点
【发布时间】:2015-08-16 11:38:52
【问题描述】:

路径代表用户的浏览历史

上面的路径表示有一个用户浏览过page A -> page B -> page C

下面的路径表示,一个用户浏览了page X-> page Y -> page B -> page C

例如,如果我想计算与页面C

相关性

预期的anwser在桌面上

或者,如果我想找到与 page B

的所有相关性

答案应该是

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

如何通过 py2neocypher query

获得预期的答案

【问题讨论】:

  • 两个B节点一样吗?或者这些在数据库中是不同的?
  • YES 两个B节点在同一个DB中是一样的
  • 哈哈好吧,那我改一下答案:)

标签: neo4j cypher py2neo


【解决方案1】:

如果您的“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

编辑

如果你的节点 'b' 相同,你可以这样做:

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

【讨论】:

  • 非常感谢。我是新来的,你的解释很清楚
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多