FIND PATH 语法

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

FIND SHORTEST | ALL PATH FROM <vertex_id_list> TO <vertex_id_list>
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

nebula> FIND SHORTEST PATH FROM 100 to 200 OVER *;
=============================
| _path_ |
=============================
| 100 <serve,0> 200
-----------------------------
nebula> FIND ALL PATH FROM 100 to 200 OVER *;
=============================================================================================================
| _path_ |
=============================================================================================================
| 100 < serve,0> 200
-------------------------------------------------------------------------------------------------------------
| 100 <follow,0> 101 < serve,0> 200
-------------------------------------------------------------------------------------------------------------
| 100 <follow,0> 102 < serve,0> 200
-------------------------------------------------------------------------------------------------------------
| 100 <follow,0> 106 < serve,0> 200
-------------------------------------------------------------------------------------------------------------