FIND PATH 语法

FIND PATH 语法用于获取最短路径及全路径。

  1. FIND SHORTEST | ALL PATH FROM <vertex_id_list> TO <vertex_id_list>
  2. OVER <edge_type_list> [UPTO <N> STEPS]

SHORTEST 寻找最短路径关键词。

ALL 寻找全路径关键词。

<vertex_id_list>::=[vertex_id [, vertex_id]] 为点列表,用逗号隔开。支持输入 $- 及变量 $var

<edge_type_list> 指定边的类型,多种边类型用 , 隔开,用 * 表示所有边类型。

<N> 为跳数,默认值 5。

注意事项

  • 当起点及终点是 ID 列表时,表示寻找从任意起点开始到终点的最短路径。
  • 全路径会有环。
  • FIND PATH 不支持带属性过滤的搜索。
  • FIND PATH 不支持指定方向搜索。
  • FIND PATH 为单进程处理,因此比较消耗内存资源。

示例

在 console 中,路径显示方式为 id <edge_name, rank> id

  1. nebula> FIND SHORTEST PATH FROM 100 to 200 OVER *;
  2. =============================
  3. | _path_ |
  4. =============================
  5. | 100 <serve,0> 200
  6. -----------------------------
  1. nebula> FIND ALL PATH FROM 100 to 200 OVER *;
  2. =============================================================================================================
  3. | _path_ |
  4. =============================================================================================================
  5. | 100 < serve,0> 200
  6. -------------------------------------------------------------------------------------------------------------
  7. | 100 <follow,0> 101 < serve,0> 200
  8. -------------------------------------------------------------------------------------------------------------
  9. | 100 <follow,0> 102 < serve,0> 200
  10. -------------------------------------------------------------------------------------------------------------
  11. | 100 <follow,0> 106 < serve,0> 200
  12. -------------------------------------------------------------------------------------------------------------