3

私はNeo4jを初めて使用し、深く学ぶために遊んでいます。みたいなちょっとした疑問があります。

空間に 2 つのノードを作成し、これら 2 つのノード間の関係とシステム時間を (いつお互いに友達になるかを知るために) 提供したとします。

だから今私の質問は、2 つの異なるリレーション時間を取得することは可能ですか (方向を両方として指定し、リレーションを 1 回だけ作成した場合)?

あなたは、Neo4j でトラバース関数がどのように動作するかを知っています。

もしそうなら、どのように私にいくつかの例を説明してください?

4

1 に答える 1

1

あなたの質問は完全に明確ではありません。

あなたが持っている場合

(person) - knows [started = time] -> (person)

次に、これらの関係を好きなだけいくつでも持つことができます。それらはどちらの方向でもかまいません (BOTH は実際には 2 つの関係、いずれかの方向の 1 つを意味します)。

直接的な関係の場合、次のことができます。

Node me, you;

for (Relationship r : me.getRelationships(KNOWS)) {
   if (r.getOtherNode(me).equals(you)) result.add(r.getProperty("time"));
}

より長いパスについては、GraphAlgoFactory.allSimplePaths を使用して 2 人の間のパスを取得し、関係とその時間情報を必要に応じて処理できます。

HTH

マイケル

于 2011-04-28T08:16:19.387 に答える