0

我在 ne04j 中有一个图形数据库,其中节点基于有向关系(知道)相互连接。A->B A->C A->E 等等。

节点根据用户 ID 编制索引,因此我可以找到任何节点。没问题。

问题是如何找到链接到节点 A 的所有节点。我猜这与传出关系有关,但我不知道如何实际实现它。尽管我了解所涉及的图形概念,但我是 neo4j 的新手。我正在使用 Everyman neo4j php graph 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在“从节点检索关系”部分下

于 2012-08-17T20:01:28.010 回答
0

问题与您的图形设计无关。实际上,完全没有问题。密码示例:

start n=node(123) 匹配 n->nodes 返回节点;

将返回与节点 n 有传入关系的所有节点

于 2012-08-17T11:12:31.523 回答