2017-07-25 48 views
0

在Neo4j的,編程我跑BFS如下:Neo4j的BFS在給定的標籤節點

public Traverser runBFSPaths(Node startNode) { 
    TraversalDescription myTraversal = graphDb.traversalDescription() 
     .breadthFirst() 
     .relationships(relationshipType) 
     .evaluator(Evaluators.excludeStartPosition()); 
    return myTraversal.traverse(startNode); 
} 

如果我有節點的多個標籤(節點類型),我怎麼可以限制上面的BFS,只有一個nodeType(不使用Cypher)?或者在Cypher中表達這一點更容易?

回答

1

您可能想看看APOC程序中的path expander procedures。這些默認使用bfs擴展,並讓您爲白名單,黑名單或您感興趣的最終節點指定節點標籤。您還可以指定用於展開的關係。

+0

是否所有APOC都需要通過Cypher運行? - 有沒有辦法直接在遍歷描述中使用它們? – kami

+0

並非直接來自遍歷描述本身,因爲有問題的過程通過內置標籤和關係過濾等創建和使用自己的遍歷描述。您始終可以添加自己的自定義評估程序來評估標籤並返回相關評估。 – InverseFalcon

相關問題