2

ユーザーとユーザーが書いたいくつかの記事を表すグラフがあります。ユーザーやその友達が書いた記事を含むアクティビティストリームのようなものを作成する必要があります。

http://twitpic.com/a342f4

私はこのようにすべてのユーザーの友達の投稿を持つことができます:

g.v(4).out("KNOWS").out("POSTED")

と戻ります

v[9]
v[11]

ただし、クエリで取得した元のユーザーからの投稿も含める必要があります。

g.v(4).out("POSTED")

これは戻ります

v[10]

2つのクエリを実行して後でマージすることなく、すべての投稿を取得するにはどうすればよいですか?私は見返りにこのようなものを手に入れる必要があります:

v[9]
v[10]
v[11]   

ありがとう

PD:私はGremlinとNeo4jClientを使用していますが、他の何かでより良い解決策があればそれでも問題ありません。この時点で、使用しているツールのいくつかを変更できます。

4

2 に答える 2

2

Gremlin の集計ステップと Groovy 独自のメソッドを使用します。

posts = []
g.v(4).out('POSTED').aggregate(posts).iterate()
g.v(4).out('KNOWS').out('POSTED').aggregate(posts).iterate()
return posts.unique()

見る...

于 2012-07-02T16:22:47.033 に答える
0

あなたがグレムリンを要求したことは知っていますが、あなたは暗号化にもオープンであると言いました。これは異なる形式でクエリを表す可能性があります

START
    user=node(4)
MATCH
    user-[:POSTED]->posts,
    user-[:KNOWS]->()-[:POSTED]->friendPosts
RETURN
    posts, friendPosts

これにより、Cypherを使用して求めた結果が返されます。

//編集説明:これは、最初にユーザーによるすべての投稿をトラバースして取得し、次に友人にトラバースします。これは、実際には友人情報を必要としないため匿名になり、次に友人の投稿にトラバースします。

于 2012-07-02T21:58:57.987 に答える