Twitter Neo4j-过滤节点之间的关系

Twitter Neo4j-过滤节点之间的关系,twitter,neo4j,cypher,nodes,relationship,Twitter,Neo4j,Cypher,Nodes,Relationship,我有这种关系: 我想计算所有传入到:Tweet节点的关系的平均值,不包括()-[:POSTS]-()关系。 我应该如何正确地做到这一点?到目前为止,我可以运行此查询来计算所有传入关系的平均值: match (t:Tweet)-->(topic:Topic) with topic, size((t)<--()) as rel where topic.name='politics' return avg(rel) as Avg_RelationshipCount match(t

我有这种关系:

我想计算所有传入到
:Tweet
节点的关系的平均值,不包括
()-[:POSTS]-()
关系。 我应该如何正确地做到这一点?到目前为止,我可以运行此查询来计算所有传入关系的平均值:

match (t:Tweet)-->(topic:Topic) 
with topic, size((t)<--()) as rel 
where topic.name='politics' 
return avg(rel) as Avg_RelationshipCount
match(t:Tweet)-->(主题:topic)

关于主题,size((t),多亏一位用户删除了他的答案,我找到了解决方案(对他的查询稍加更正):

match()-[:回复|:转发]->(t:Tweet)-->(主题:主题)

对于主题,size((t)这个@sirdan答案的重构形式应该快得多:

MATCH ()-[r:REPLIES_TO|:RETWEETS]->(:Tweet)-->(topic:Topic)
WHERE topic.name='politics'
WITH topic, COUNT(r) as rel
RETURN AVG(rel) AS Avg_RelationshipCount;

上面的查询在生成关系计数之前按
主题.name
进行过滤,以消除多余的计数。它还避免了不必要地执行
(t)Hi@sirdan。我已删除了我的答案,以修复密码查询中的一些点,并在之后取消删除。很高兴您找到了解决方案!:)不客气!是的,这很有帮助!谢谢!
MATCH ()-[r:REPLIES_TO|:RETWEETS]->(:Tweet)-->(topic:Topic)
WHERE topic.name='politics'
WITH topic, COUNT(r) as rel
RETURN AVG(rel) AS Avg_RelationshipCount;