2014-06-05 58 views
0

在neo4j遍歷期間,我想知道路徑節點(完整路徑)的endnode。但是使用下面的代碼,它像輸出一個節點一樣輸出路徑,它輸出(新)路徑。所以這不是完整路徑的結束。 如何識別全路徑的末端節點。neo4j如何知道你到達此路徑的末端

for (Path path :db.traversalDescription() 
     .depthFirst() 
     .relationships(Rels.KNOWS,Direction.OUTGOING) 
     .traverse(node)) 
{ 
    output += path + "\n"; 
    System.out.println(output); 
} 
+0

我打算編輯這個,但我不是100%確定OP在這裏說什麼。 OP,請澄清你的問題,這很難理解你。這段代碼每次訪問一個節點時都會打印出一條路徑。所以如果你有一個圖A-> B-> C,你會得到一個路徑A-> B,另一個A-> B-> C。你是說你只想打印找到的最長路徑,沒有一箇中介? – FrobberOfBits

回答

0

您可以使用path.endNode()來獲取每個路徑的最後一個節點(端節點),或使用path.nodes()來獲取一個可迭代與最後一個元素是路徑的末端節點。

http://api.neo4j.org/current/org/neo4j/graphdb/Path.html#endNode()

但作爲@FrobberOfBits寫道,遍歷會給你所有可能的路徑,所以沒有進一步限制條件或規則,你的問題是ambigiuous。

相關問題