1

それぞれがメールと呼ばれる 1 つの属性を持つユーザーの巨大なグラフを想像してみてください。ここで、gmail を使用するユーザーを「google_mail」という 1 つのグループにグループ化し、「yahoo」を使用するユーザーを「yahoo_mail」というグループにグループ化する必要があるとします。

切断されたグラフをトラバースするにはどうすればよいですか (各ユーザー ノードにアクセスするルート ノードがなく、すべてのユーザーが接続されているわけではありません (つまり、ユーザーのグラフが完全にバラバラになる可能性があります)。これらすべてのユーザーがメモリに読み込まれるのを避けたいと考えています。可能?

4

1 に答える 1

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

LIMITグラフのサイズによっては、単一の巨大なトランザクションではなく変更をSKIP適用する場合があることに注意してください。

すべての Gmail ユーザーのリストを取得するには:

MATCH (n:GoogleMail) RETURN n
于 2013-11-09T11:30:14.280 に答える