如何在Neo4j创建后对节点进行分组?

sat*_*sat 1 neo4j

想象一下用户的巨大图表,每个用户都有一个名为email的属性.现在想象一下,我必须将那些使用gmail的人分组在一个名为"google_mail"的组中,将那些使用"yahoo"的人分组到名为"yahoo_mail"的组中.

如何遍历断开连接的图形(没有根节点访问每个用户节点而不是每个用户都连接(即我们可能有完全脱节的用户图).我想避免将所有这些用户加载到内存中.这是可能?

Ste*_*ter 5

在Neo4j 2.0中,有一个名为标签的新功能似乎非常适合您的用例,请参阅http://docs.neo4j.org/chunked/milestone/graphdb-neo4j-labels.html.

要为具有包含"gmail"的电子邮件的所有节点分配GoogleMail您可能使用的标签:

START n=node(*)
WHERE n.email =~ '.*@gmail.com'
SET n :GoogleMail

START n=node(*)
WHERE n.email =~ '.*@yahoo.com'
SET n :Yahoo
Run Code Online (Sandbox Code Playgroud)

请注意,根据您的图表大小,您可以使用LIMIT并将SKIP更改应用于单个巨大的事务中.

要获取所有Gmail用户的列表:

MATCH (n:GoogleMail) RETURN n
Run Code Online (Sandbox Code Playgroud)