電子メールと呼ばれる1つの属性を持つユーザーの巨大なグラフを想像してみてください。ここで、Gmailを使用するユーザーを「google_mail」という1つのグループにグループ化し、「yahoo」を使用するユーザーを「yahoo_mail」というグループにグループ化する必要があると想像してください。
切断されたグラフをトラバースするにはどうすればよいですか(各ユーザーノードにアクセスするルートノードがなく、すべてのユーザーが接続されているわけではありません(つまり、ユーザーのグラフが完全に分離されている可能性があります)。これらすべてのユーザーをメモリにロードしないようにします。これは可能?
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加