在 ArangoDB 中,最短路徑可以通過使用 AQL(ArangoDB 查詢語言)中的 TRAVERSAL
函數來計算。TRAVERSAL
函數允許您沿著圖中的邊遍歷節點,直到滿足某個條件為止。為了計算兩個節點之間的最短路徑,您可以使用 TRAVERSAL
函數并指定相應的邊集合和遍歷選項。
以下是一個使用 TRAVERSAL
函數計算兩個節點之間最短路徑的示例查詢:
FOR v, e IN OUTBOUND 'collection_name' 'start_vertex_id' OPTIONS {bfs: true, uniqueVertices: 'path'} RETURN [v._key, e._key]
在這個示例中,collection_name
是您要查詢的邊的集合名稱,start_vertex_id
是起始頂點的 ID。OPTIONS
對象中的 bfs
參數設置為 true
以啟用廣度優先搜索(BFS),這是計算最短路徑的常用算法。uniqueVertices
參數設置為 'path'
以確保返回的路徑中的頂點是不重復的。
查詢結果將包含一個頂點和邊鍵的數組,這些頂點和邊鍵表示了從起始頂點到目標頂點的最短路徑。如果您需要計算兩個節點之間的最短路徑長度,可以在查詢結果中添加一個額外的字段來存儲路徑長度。