2013-09-01 29 views
0

我想弄清楚在neo4j中找到N(常量)兩個節點之間的路徑數。Neo4j找到第一個n最短路徑

有了更大的圖形:

PathFinder<Path> finder = GraphAlgoFactory.allSimplePaths(
         Traversal.expanderForTypes(Relationship.KNOWS), 20); 
Iterable<Path> paths = finder.findAllPaths(startNode, endNode); 

退換貨辦法不多路徑(其實我不得不殺進程的原因是不斷恢復可能的路徑)。

我的第一個想法(摘要)是找到這樣的正最短路徑:

  1. 查找與GraphAlgoFactory.shortestPath(...)
  2. 查找額外的路徑,在每個迭代GraphAlgoFactory.pathsWithLength()增量最短路徑1,從長度開始==路徑長度+1從1.
  3. Iter直到達到最大長度(深度)或最大命中數。

但也許我試圖再次發明輪? Neo4j提供了這樣的助力嗎?我找不到任何

+0

你解決了這個問題嗎? – Stefan

回答

0

我認爲這個算法可能是你可以開發自己的東西,並有助於graph-algo包,也許作爲allSimplePaths的變種?