2012-04-16 2 views
1

BFS를 사용하여 DAG (directed acyclic graph)를 트래버스해야합니다. neo4j를 REST API를 통해 사용하고 있습니다. 따라서 neo4j와의 주요 통신 방법은 Cypher를 사용하는 것입니다.사이퍼를 사용하는 BFS 순회

Cypher를 사용하면 시작 노드에서 모든 경로 집합을 검색 할 수 있으며 BFS 탐색을 파생시킵니다.

Cypher를 사용하여 BFS 순회를하는 간단한 방법이 있는지 궁금합니다. 출력으로 기대하는 것은 일련의 노드 집합입니다.

+0

도와주고 싶지만 성취하고자하는 것이 무엇인지 잘 이해하지 못합니다. 조금 더 많은 정보가 도움이 될 것입니다. – Andres

+0

@Andres : 궁극적으로 그래프를 통해 BFS 반복자의 순회를 깊이로 정렬하여 출력하고 싶습니다. – Dan

+0

그런 다음 길이가 지나면 결과 경로를 주문할 수 없습니까? http://bit.ly/ItCCQY –

답변

1

당신은 단지 결과 경로 길이 후, 어쩌면 오름차순으로 경로를 다시 얻을 수 http://bit.ly/HF0p0t

start n=node(1) match p = n-[*1..]->m return p, length(p), last(p) order by length(p) asc 

처럼 같은 각에서 마지막 노드을 주문 할 수 없습니다?

+0

과 같이 각 노드의 마지막 노드를 가져 가세요. 감사합니다. 이제는 주어진 유형의 가장자리를 트래버스하는 방법을 알아 내야합니다. 그것이 거기에 있다는 것을 알지 못했습니다 ... – Dan

+0

나는 마지막 (p)를 사용할 때 SyntaxException : 알 수없는 함수를 얻고 있습니다. 버전 1.6.1 있습니다. 너무 오래 되었습니까? 어떤 버전을 설치 하시겠습니까? – Dan

+1

예, 이것은 Neo4j 1.7입니다.이 함수는 1.6에 없었을 것 같습니다. –