2012-08-17 2 views
0

나는 ne04j에 그래프 데이터베이스가있다. ne04j는 노드들이 지시 관계 (knowings)를 기반으로 서로 연결되어있다. A-> B A-> C A-> E 등 노드의 인덱스가 사용자 ID에 기반주어진 노드 (Neo4J + PHP)에 연결된 (연결된) 모든 노드의 배열을 얻는 방법?

그래서 어떤 노드를 찾을 수있다. 그거 아무 문제 없어.

질문은 노드 A에 연결된 모든 노드를 찾는 방법입니다. 나는 나가는 관계와 관련이 있다고 생각하지만 실제로 구현하는 방법을 모릅니다. 나는 그래프 개념을 이해하고 있지만 neo4j를 처음 사용합니다. 나는 Everyman neo4j php 그래프 API를 사용하고있다.

내가하려는 일을 성취하기 위해 관계를 색인화해야합니까? 아니면 연결된 모든 노드를 가져 오는 기능을 통해 가능합니까?

감사합니다.

답변

3

당신은 할 수있다 :이 사이퍼보다 더 성능이 좋은입니다

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

당신이 원하는 모든 검색 할 경우 노드. 보다 복잡한 경로 일치를 수행해야하는 경우 Cypher를 사용하십시오. 여기

추가 정보 : 섹션에서 https://github.com/jadell/neo4jphp/wiki/Nodes-and-Relationships 내가 필요 정확히 무엇을

+0

"노드에서 관계를 가져옵니다." Thnx :)! –

0

이 문제는 그래프 디자인에 독립적입니다. 사실 전혀 문제가 없습니다. cypher의 예 :

start n = 노드는 노드를 반환합니다.

노드 N에서 들어오는 관계가있는 모든 노드를 반환합니다 Neo4jPHP에서

관련 문제