From 6391d1a7cf43055a9c1cfe797243e14ff09259cd Mon Sep 17 00:00:00 2001 From: randomJoe211 <69501902+randomJoe211@users.noreply.github.com> Date: Fri, 22 Oct 2021 17:27:48 +0800 Subject: [PATCH 1/3] Add sample doc --- docs-2.0/2.quick-start/4.nebula-graph-crud.md | 3 ++- .../7.general-query-statements/3.go.md | 21 +++++++++++------- .../8.clauses-and-options/sample.md | 21 ++++++++++++++++++ .../8.clauses-and-options/sample_in_go.png | Bin 0 -> 25867 bytes mkdocs.yml | 1 + 5 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md create mode 100644 docs-2.0/3.ngql-guide/8.clauses-and-options/sample_in_go.png diff --git a/docs-2.0/2.quick-start/4.nebula-graph-crud.md b/docs-2.0/2.quick-start/4.nebula-graph-crud.md index 1893c094bcd..7a2e703510d 100644 --- a/docs-2.0/2.quick-start/4.nebula-graph-crud.md +++ b/docs-2.0/2.quick-start/4.nebula-graph-crud.md @@ -272,9 +272,10 @@ Execution succeeded (time spent 5858/6870 us) OVER [{REVERSELY | BIDIRECT}] [ WHERE  ] [YIELD [DISTINCT] ] + [{SAMPLE | LIMIT }] [| GROUP BY {col_name | expr | position} YIELD ] [| ORDER BY [{ASC | DESC}]] - [| LIMIT [,] ]; + [| LIMIT [,] ]; ``` - `FETCH` diff --git a/docs-2.0/3.ngql-guide/7.general-query-statements/3.go.md b/docs-2.0/3.ngql-guide/7.general-query-statements/3.go.md index 2719782a982..6287f5dbebc 100644 --- a/docs-2.0/3.ngql-guide/7.general-query-statements/3.go.md +++ b/docs-2.0/3.ngql-guide/7.general-query-statements/3.go.md @@ -13,9 +13,10 @@ GO [[ TO] STEPS ] FROM OVER [{REVERSELY | BIDIRECT}] [ WHERE  ] [YIELD [DISTINCT] ] +[{SAMPLE | LIMIT }] [| GROUP BY {col_name | expr | position} YIELD ] [| ORDER BY [{ASC | DESC}]] -[| LIMIT [,] ]; +[| LIMIT [,] ]; ::= [, ...] @@ -32,33 +33,37 @@ OVER [{REVERSELY | BIDIRECT}] !!! note - `GO`语句采用的路径类型是`walk`,即遍历时点和边可以重复。详情请参见[路径](../../1.introduction/2.1.path.md)。 + `GO`语句采用的路径类型是`walk`,即遍历时点和边可以重复。详情参见[路径](../../1.introduction/2.1.path.md)。 - `M TO N STEPS`:遍历`M~N`跳的边。如果`M`为`0`,输出结果和`M`为`1`相同,即`GO 0 TO 2`和`GO 1 TO 2`是相同的。 -- ``:用逗号分隔的点ID列表,或特殊的引用符`$-.id`。详情请参见[管道符](../5.operators/4.pipe.md)。 +- ``:用逗号分隔的点ID列表,或特殊的引用符`$-.id`。详情参见[管道符](../5.operators/4.pipe.md)。 - ``:遍历的Edge type列表。 - `REVERSELY | BIDIRECT`:默认情况下检索的是``的出边(正向),`REVERSELY`表示反向,即检索入边;`BIDIRECT` 为双向,即检索正向和反向,通过返回 `._type` 字段判断方向,其正数为正向,负数为反向。 -- `WHERE `:指定遍历的过滤条件。用户可以在起始点、目的点和边使用`WHERE`子句,还可以结合`AND`、`OR`、`NOT`、`XOR`一起使用。详情请参见[WHERE](../8.clauses-and-options/where.md)。 +- `WHERE `:指定遍历的过滤条件。用户可以在起始点、目的点和边使用`WHERE`子句,还可以结合`AND`、`OR`、`NOT`、`XOR`一起使用。详情参见[WHERE](../8.clauses-and-options/where.md)。 !!! Note 遍历多个Edge type时,`WHERE`子句有一些限制。例如不支持`WHERE edge1.prop1 > edge2.prop2`。 -- `YIELD [DISTINCT] `:定义需要返回的输出。` `建议使用[Schema函数](../6.functions-and-expressions/4.schema.md),当前支持`src(edge)`、`dst(edge)`、`type(edge)`、`rank(edge)`、`properties(edge)`、`id(vertex)`、`properties(vertex)`,暂不支持嵌套函数。详情请参见[YIELD](../8.clauses-and-options/yield.md)。如果没有指定,默认返回目的点ID。 +- `YIELD [DISTINCT] `:定义需要返回的输出。` `建议使用[Schema函数](../6.functions-and-expressions/4.schema.md),当前支持`src(edge)`、`dst(edge)`、`type(edge)`、`rank(edge)`、`properties(edge)`、`id(vertex)`、`properties(vertex)`,暂不支持嵌套函数。详情参见[YIELD](../8.clauses-and-options/yield.md)。如果没有指定,默认返回目的点ID。 -- `GROUP BY`:根据指定属性的值将输出分组。详情请参见[GROUP BY](../8.clauses-and-options/group-by.md)。分组后需要再次使用`YIELD`定义需要返回的输出。 +- `SAMPLE `:用于在结果集中取样。详情参见[SAMPLE](../8.clauses-and-options/sample.md)。 -- `ORDER BY`:指定输出结果的排序规则。详情请参见[ORDER BY](../8.clauses-and-options/order-by.md)。 +- `LIMIT `:用于在遍历过程中逐步限制输出数量。详情参见[LIMIT](../8.clauses-and-options/limit.md)。 + +- `GROUP BY`:根据指定属性的值将输出分组。详情参见[GROUP BY](../8.clauses-and-options/group-by.md)。分组后需要再次使用`YIELD`定义需要返回的输出。 + +- `ORDER BY`:指定输出结果的排序规则。详情参见[ORDER BY](../8.clauses-and-options/order-by.md)。 !!! Note 没有指定排序规则时,输出结果的顺序不是固定的。 -- `LIMIT`:限制输出结果的行数。详情请参见[LIMIT](../8.clauses-and-options/limit.md)。 +- `LIMIT [,] ]`:限制输出结果的行数。详情参见[LIMIT](../8.clauses-and-options/limit.md)。 ## 示例 diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md new file mode 100644 index 00000000000..7a0586e25ea --- /dev/null +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md @@ -0,0 +1,21 @@ +# SAMPLE + +`SAMPLE`子句用于在结果集中均匀取样并返回指定数量的数据。 + +!!! compatibility "历史版本兼容性" + + `SAMPLE`是Nebula Graph {{nebula.release}} 新增的子句。 + +`SAMPLE`仅能在`GO`语句中使用,语法如下: + +```ngql + SAMPLE ; +``` + +`sample_list`是一个列表,列表中的元素必须为自然数,且元素数量必须与`GO`语句中的`STEPS`的最大数相同。下文以`GO 1 TO 3 STEPS FROM "A" OVER * SAMPLE `为例详细介绍`SAMPLE`的用法。 + +* 列表`sample_list`必须包含3个自然数元素,例如`GO 1 TO 3 STEPS FROM "A" OVER * SAMPLE [1,2,4]`。 +* `SAMPLE [1,2,4]`中的`1`表示系统在第一步时自动选择1条边继续遍历,`2`表示在第二步时选择2条边继续遍历,`4`表示在第三步时选择4条边继续遍历。如果某一步没有匹配的边或者匹配到的边数量小于指定数量,则按实际数量返回。 +* 因为`GO 1 TO 3 STEPS`表示返回第一到第三步的所有遍历结果,因此下图中所有红色边和它们的原点与目的点都会被这条`GO`语句匹配上,而黄色边表示`GO`语句遍历时没有选择的路径。如果不是`GO 1 TO 3 STEPS`而是`GO 3 STEPS`,则只会匹配上第三步的红色边和它们两端的点。 + +![SAMPLE in GO](sample_in_go.png) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/sample_in_go.png b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample_in_go.png new file mode 100644 index 0000000000000000000000000000000000000000..fc23ccb95d74637b74696f92b56056d1eab14d3d GIT binary patch literal 25867 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 literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml index 90f491f5e93..842bcbb9cc8 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -208,6 +208,7 @@ nav: - 子句和选项: - GROUP BY: 3.ngql-guide/8.clauses-and-options/group-by.md - LIMIT and SKIP: 3.ngql-guide/8.clauses-and-options/limit.md + - SAMPLE: 3.ngql-guide/8.clauses-and-options/sample.md - ORDER BY: 3.ngql-guide/8.clauses-and-options/order-by.md - RETURN: 3.ngql-guide/8.clauses-and-options/return.md - TTL: 3.ngql-guide/8.clauses-and-options/ttl-options.md From 11aefa27b1e590ea4de93b751f6d83729f372d62 Mon Sep 17 00:00:00 2001 From: randomJoe211 <69501902+randomJoe211@users.noreply.github.com> Date: Fri, 22 Oct 2021 17:35:06 +0800 Subject: [PATCH 2/3] Update sample.md --- docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md index 7a0586e25ea..67417bd655e 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md @@ -4,7 +4,7 @@ !!! compatibility "历史版本兼容性" - `SAMPLE`是Nebula Graph {{nebula.release}} 新增的子句。 + `SAMPLE`是Nebula Graph 2.6.0 新增的子句。 `SAMPLE`仅能在`GO`语句中使用,语法如下: From ad49756e93bf01954b69eab7c55116d6ad402baf Mon Sep 17 00:00:00 2001 From: randomJoe211 <69501902+randomJoe211@users.noreply.github.com> Date: Fri, 22 Oct 2021 17:46:40 +0800 Subject: [PATCH 3/3] Update sample.md --- .../8.clauses-and-options/sample.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md index 67417bd655e..b04d0d21cb7 100644 --- a/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md +++ b/docs-2.0/3.ngql-guide/8.clauses-and-options/sample.md @@ -19,3 +19,34 @@ * 因为`GO 1 TO 3 STEPS`表示返回第一到第三步的所有遍历结果,因此下图中所有红色边和它们的原点与目的点都会被这条`GO`语句匹配上,而黄色边表示`GO`语句遍历时没有选择的路径。如果不是`GO 1 TO 3 STEPS`而是`GO 3 STEPS`,则只会匹配上第三步的红色边和它们两端的点。 ![SAMPLE in GO](sample_in_go.png) + +在basketballplayer数据集中的执行示例如下: + +```ngql +nebula> GO 3 STEPS FROM "player100" \ + OVER * \ + YIELD properties($$).name AS NAME, properties($$).age AS Age \ + SAMPLE [1,2,3]; ++-----------------+--------------+ +| NAME | Age | ++-----------------+--------------+ +| "Spurs" | UNKNOWN_PROP | +| "Tony Parker" | 36 | +| "Manu Ginobili" | 41 | ++-----------------+--------------+ + +nebula> GO 1 TO 3 STEPS FROM "player100" \ + OVER * \ + YIELD properties($$).name AS NAME, properties($$).age AS Age \ + SAMPLE [2,2,2]; ++---------------------+-----+ +| NAME | Age | ++---------------------+-----+ +| "Manu Ginobili" | 41 | +| "Tony Parker" | 36 | +| "Tim Duncan" | 42 | +| "LaMarcus Aldridge" | 33 | +| "Tony Parker" | 36 | +| "Tim Duncan" | 42 | ++---------------------+-----+ +```