0
我們最近使用的Neo4j數據庫尋找所有可能的路徑到達從一個節點到另一個節點開始,我使用下面的代碼(使用GraphAlgoFactory API):Neo4j的兩個節點之間的簡單路徑,而不指定的最大長度
Node node1 = db.getNodeById(startNodeId);
Node node2 = db.getNodeById(endNodeId);
PathExpander<Object> pathExpander = PathExpanders.allTypesAndDirections();
PathFinder<Path> pathsFinder = GraphAlgoFactory.allSimplePaths(pathExpander, 10);
Iterable<Path> paths = pathsFinder.findAllPaths(node1, node2);
//Iterate all paths
正如你可以看到,在上面的代碼,爲allSimplePaths()
我們需要提供最大長度(我已經給出10
)作爲輸入,我將無法之前找到的路徑就知道了。
所以,我的問題是我們如何檢索兩個節點之間的所有簡單路徑而不指定最大長度?
我認爲這是(使用高價值)第二個(但不是一個好的)選項。我正在尋找更好的方法來處理這個問題。還有其他的選擇嗎? – developer
不確定你的意思是「更好」的選擇。找到兩個節點之間的所有「簡單路徑」(即,沒有重複節點的所有路徑)的任何算法都必須嘗試所有可適用的路徑,其可以是任意長的。因此,除非您允許任何合適的算法使用較高的最大深度,否則您將無法獲得完整的結果。 – cybersam