0

ノードが有向関係に基づいて相互に接続されているne04jにグラフデータベースがあります(知っています)。A->B A->C A->E など。

ノードはユーザー ID に基づいてインデックス付けされるため、任意のノードを見つけることができます。それで問題ありません。

問題は、ノード A にリンクされているすべてのノードを見つける方法です。発信関係と関係があると思いますが、実際に実装する方法がわかりません。関連するグラフの概念は理解していますが、neo4j は初めてです。Everyman neo4j php グラフ API を使用しています。

私がやろうとしていることを達成するために、関係にもインデックスを付ける必要がありますか、それとも関数を介して接続されたすべてのノードを取得することは可能ですか?

ありがとう!

4

2 に答える 2

3

Neo4jPHP では、次のことができます。

$node = $client->getNode($nodeId);
$relationships = $node->getRelationships(array('KNOWS'), 'out');
$outgoingNodes = array_map(function ($rel) {
    return $rel->getEndNode();
}, $relationships);

ノードを取得するだけの場合、これは Cypher よりもパフォーマンスが高くなります。より複雑なパス マッチングを行う必要がある場合は、Cypher を使用します。

詳細はこちら: https://github.com/jadell/neo4jphp/wiki/Nodes-and-Relationshipsセクション「Retrieve Relationships from a Node」の下

于 2012-08-17T20:01:28.010 に答える
0

問題はグラフのデザインとは無関係です。実は全く問題ありません。サイファーの例:

start n = node(123)match n->ノードはノードを返します。

ノードnからの着信関係を持つすべてのノードを返します

于 2012-08-17T11:12:31.523 に答える