2016-01-06 53 views
2

我很好奇Neo4j如何確定在接收查詢時使用什麼遍歷順序,即BFS或DFS。從查詢描述中,它如何確定BFS或DFS遍歷順序是有益的。我懷疑它會在查詢評估階段發生,但我沒有看到任何文檔。任何建議或鏈接瞭解這將是非常有用的。謝謝在Neo4j中識別遍歷順序

回答

0

您可以使用EXPLAIN查看操作如何處理您的查詢。

它不直接BFS或DFS但可以有多個起始點等等

一般而言鏈展開(全部)操作DFS。但也有一個雙向ExpandInto和幾種類型的聯接和應用程序。

看到:http://neo4j.com/docs/stable/execution-plans.html

+0

感謝您的答覆。在提供的鏈接中,我感覺編譯器應用遍歷順序的位置將位於擴展運算符中,因爲這是從標識的凝視節點開始探索圖的位置。根據您對擴展使用DFS的所有操作員的評論,可能會出現BFS比DFS更合適的情況。那麼,Neo4J是否確定了一些統計數據來做出決定,還是默認的DFS?謝謝。 –

+0

我們正在添加更多選項。你有沒有具體的例子BFS會有好處?它需要更多的內存來運行BFS(尤其是密集節點),所以我們通常喜歡DFS –