GET SUBGRAPH¶
The GET SUBGRAPH
statement retrieves information of vertices and edges reachable from the start vertices over the specified types of edges.
Syntax¶
GET SUBGRAPH [<step_count> STEPS] FROM {<vid>, <vid>...}
[IN <edge_type>, <edge_type>...]
[OUT <edge_type>, <edge_type>...]
[BOTH <edge_type>, <edge_type>...]
Clause | Description |
---|---|
STEPS |
Specifies the steps to go from the start vertices. A step_count must be a non-negative integer. Its default value is 1. When <step_count> is specified to N , the Nebula Graph returns zero to N steps subgraph. |
FROM |
Specifies the start vertices. |
IN |
Gets the subgraphs from the start vertices over the specified incoming edges (edges pointing to the start vertices). |
OUT |
Gets the subgraphs from the start vertices over the specified outgoing edges (edges pointing out from the start vertices). |
BOTH |
Gets the subgraphs from the start vertices over the specified types of edges, both incoming and outgoing. |
When the traversal direction is not specified, both the incoming and outgoing edges are returned.
Examples¶
The following graph is used as the sample.
- Go one step from the vertex with VID "player100" over all types of edges and get the subgraph.
nebula> GET SUBGRAPH 1 STEPS FROM "player100"; +--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ | _vertices | _edges | +--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ | [(player100) player.name:Tim,player.age:42] | [player100-[follow]->player101@0 degree:96,player100-[follow]->player102@0 degree:90,player100-[serve]->team200@0 end_year:2016,start_year:1997] | +--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ | [(player101) player.age:36,player.name:Tony Parker,(player102) player.age:33,player.name:LaMarcus Aldridge,(team200) team.name:Warriors] | [player102-[follow]->player101@0 degree:75] | +--------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ Got 2 rows (time spent 6289/7423 us)
The returned subgraph is as follows.
- Go one step from the vertex with VID "player100" over incoming
follow
edges and get the subgraph.nebula> GET SUBGRAPH 1 STEPS FROM "player100" IN follow; +-----------+--------+ | _vertices | _edges | +-----------+--------+ | [] | [] | +-----------+--------+ | [] | [] | +-----------+--------+ Got 2 rows (time spent 2292/3091 us)
There is no incoming
follow
edge to "player100", so no vertex or edge is returned.
- Go one step from the vertex "player100" over outgoing
serve
edges and get the subgraph.nebula> GET SUBGRAPH 1 STEPS FROM "player100" OUT serve; +---------------------------------------------+--------------------------------------------------------------+ | _vertices | _edges | +---------------------------------------------+--------------------------------------------------------------+ | [(player100) player.age:42,player.name:Tim] | [player100-[serve]->team200@0 start_year:1997,end_year:2016] | +---------------------------------------------+--------------------------------------------------------------+ | [(team200) team.name:Warriors] | [] | +---------------------------------------------+--------------------------------------------------------------+ Got 2 rows (time spent 2107/2547 us)
The returned subgraph is as follows.
Last update: April 15, 2021