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

时间:2013-11-08 02:10:17

标签: neo4j

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

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

1 个答案:

答案 0 :(得分: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

请注意,根据您的图表尺寸,您可以使用LIMITSKIP来应用更改,而不是在单个巨大的交易中。

获取所有Gmail用户的列表:

MATCH (n:GoogleMail) RETURN n