2014-04-27 5 views
0

두 노드 사이의 모든 경로를 찾고 싶습니다. 다음 코드를 사용했습니다 :TraversalDescription이있는 neo4j의 두 노드 사이의 모든 경로가 잘못된 경로를 반환합니다.

TraversalDescription desc = Traversal.description(); 
      desc.uniqueness(Uniqueness.RELATIONSHIP_GLOBAL); 
      desc.evaluator(Evaluators.returnWhereEndNodeIs(graphDb.getNodeById(12))); 
      desc.evaluator(Evaluators.includingDepths(3, 3)); 
      desc.relationships(RelTypes.husband_of).relationships(RelTypes.wife_of).relationships(RelTypes.brother_of).relationships(RelTypes.elti_of) ; 
      Traverser traverse = desc.traverse(graphDb.getNodeById(4), graphDb.getNodeById(12)); 

그러나 정확한 경로를 반환하지 않습니다. 깊이가 3 이상인 경로를 반환합니다. 또한 경로는 ID가 12 인 노드에 의해 끝나지 않습니다.

답변

2

TraversalDescription은 유창한 API를 사용하기 때문에 (주로) 수정 된 설명을 반환하기 때문입니다. 메서드를 호출하고 결과를 무시하면 아무 효과가 없습니다. 그래서 당신은 말했다

TraversalDescription desc = Traversal.description() 
     .uniqueness(Uniqueness.RELATIONSHIP_GLOBAL) 
     .evaluator(Evaluators.returnWhereEndNodeIs(graphDb.getNodeById(12))) 
     .evaluator(Evaluators.includingDepths(3, 3)) 
     .relationships(RelTypes.husband_of) 
     .relationships(RelTypes.wife_of) 
     .relationships(RelTypes.brother_of) 
     .relationships(RelTypes.elti_of); 

Traverser traverse = desc.traverse(graphDb.getNodeById(4), graphDb.getNodeById(12)); 

, 나는 패스 파인더 API를 살펴 거라고 작성해야합니다.

+0

도움 주셔서 감사합니다. 그것은 내가 예상대로 작동합니다. – user3104352

관련 문제