Cypher查询超时尝试获取所有节点

时间:2014-03-12 00:56:43

标签: performance neo4j cypher

首先,我很抱歉我的英语很差,而且我是Neo4J的新手!

我有一个像Twitter社交网络一样的图形数据库。

Nodes: Users and Tweets
Relationships: :WROTE, :RETWEETED, :FOLLOWED

我有大约2.2M节点,8.1M属性和1.4M关系。

我需要获得编写或转发推文的用户的所有独特屏幕名称。

所以,我正在使用此查询,直到我的数据库变大:

MATCH (u:User)-[]-(t:Tweet) return distinct u.screen_name;

现在问题是此查询返回超时。

如何查询以获得更好的性能?

谢谢!

1 个答案:

答案 0 :(得分:0)

你有多少用户?您可能会为浏览器返回太多数据。

您可以尝试这些查询:

MATCH (u:User) return count(*);

MATCH (u:User) return u.screen_name;

MATCH (u:User) WHERE (u)-[:WROTE|RETWEETED]->() return u.screen_name LIMIT 1000;

MATCH (u:User) WHERE (u)-[:WROTE|RETWEETED]->() return u.screen_name;