Skip to content

Commit

Permalink
Whitespace for ngql operators functions (#1249)
Browse files Browse the repository at this point in the history
* whitespace added

* Update 14.geo.md
  • Loading branch information
abby-cyber authored Nov 24, 2021
1 parent eafe5d1 commit 62fae25
Show file tree
Hide file tree
Showing 22 changed files with 174 additions and 183 deletions.
16 changes: 7 additions & 9 deletions docs-2.0/3.ngql-guide/5.operators/1.comparison.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 比较符

Nebula Graph支持的比较符如下
Nebula Graph 支持的比较符如下

| 符号 | 说明 |
|:----|:----:|
Expand All @@ -17,8 +17,8 @@ Nebula Graph支持的比较符如下。
| `<=` | 小于等于 |
| `%` | 取模 |
| `-` | 负数符号 |
| `IS NULL` | 为NULL|
| `IS NOT NULL` | 不为NULL |
| `IS NULL` | 为 NULL|
| `IS NOT NULL` | 不为 NULL |
| `IS EMPTY` | 不存在|
| `IS NOT EMPTY` | 存在 |

Expand All @@ -30,11 +30,11 @@ Nebula Graph支持的比较符如下。

- `EMPTY`当前仅用于判断,不支持函数或者运算操作,包括且不限于`GROUP BY`、`count()`、`sum()`、`max()`、`hash()`、`collect()`、`+`、`*`。

## OpenCypher兼容性
## OpenCypher 兼容性

- `NULL`的比较操作和openCypher不同,行为也可能会改变。在openCypher中`IS [NOT] NULL`通常与`OPTIONAL MATCH`一起使用,但是nGQL不支持`OPTIONAL MATCH`
- `NULL`的比较操作和 openCypher 不同,行为也可能会改变。在 openCypher 中`IS [NOT] NULL`通常与`OPTIONAL MATCH`一起使用,但是 nGQL 不支持`OPTIONAL MATCH`

- openCypher中没有`EMPTY`因此不支持在MATCH语句中使用`EMPTY`
- openCypher 中没有`EMPTY`因此不支持在 MATCH 语句中使用`EMPTY`

## 示例

Expand All @@ -44,7 +44,7 @@ Nebula Graph支持的比较符如下。

!!! Note

nGQL中的相等符号是`==`,openCypher中的相等符号是`=`。
nGQL 中的相等符号是`==`,openCypher 中的相等符号是`=`。

```ngql
nebula> RETURN 'A' == 'a', toUpper('A') == toUpper('a'), toLower('A') == toLower('a');
Expand Down Expand Up @@ -165,8 +165,6 @@ nebula> MATCH (n:player) \
| n.age IS NULL | n.name IS NOT NULL | n.empty IS NULL |
+---------------+--------------------+-----------------+
| false | true | true |
| false | true | true |
| false | true | true |
+---------------+--------------------+-----------------+
...
```
Expand Down
8 changes: 4 additions & 4 deletions docs-2.0/3.ngql-guide/5.operators/2.boolean.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 布尔符

Nebula Graph支持的布尔符如下
Nebula Graph 支持的布尔符如下

| 符号 | 说明 |
| :------- | :-------------: |
Expand All @@ -9,10 +9,10 @@ Nebula Graph支持的布尔符如下。
| NOT | 逻辑非 |
| XOR | 逻辑异或 |

对于以上运算的优先级,请参见[运算优先级](9.precedence.md)
对于以上运算的优先级,请参见 [运算优先级](9.precedence.md)

对于带有`NULL`的逻辑运算,请参见[NULL](../3.data-types/5.null.md)
对于带有`NULL`的逻辑运算,请参见 [NULL](../3.data-types/5.null.md)

## 历史兼容问题

在Nebula Graph 2.0中,非0数字不能转换为布尔值
在 Nebula Graph 2.0 中,非 0 数字不能转换为布尔值
14 changes: 7 additions & 7 deletions docs-2.0/3.ngql-guide/5.operators/4.pipe.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# 管道符

nGQL支持使用管道符(|)将多个查询组合起来。
nGQL 支持使用管道符(|)将多个查询组合起来。

## openCypher兼容性
## openCypher 兼容性

管道符仅适用于原生nGQL
管道符仅适用于原生 nGQL

## 语法

nGQL和SQL之间的一个主要区别是子查询的组成方式
nGQL 和 SQL 之间的一个主要区别是子查询的组成方式

- 在SQL中,子查询是嵌套在查询语句中的。
- 在 SQL 中,子查询是嵌套在查询语句中的。

- 在nGQL中,子查询是通过类似shell中的管道符`|`)实现的。
- 在 nGQL 中,子查询是通过类似 shell 中的管道符`|`)实现的。

## 示例

Expand All @@ -31,7 +31,7 @@ nebula> GO FROM "player100" OVER follow \
+-------------+
```

用户可以使用`YIELD`显式声明需要返回的结果,如果不使用`YIELD`默认返回目标点ID
用户可以使用`YIELD`显式声明需要返回的结果,如果不使用`YIELD`默认返回目标点 ID

必须在`YIELD`子句中为需要的返回结果设置别名,才能在管道符右侧使用引用符`$-`,例如示例中的`$-.dstid`

Expand Down
14 changes: 7 additions & 7 deletions docs-2.0/3.ngql-guide/5.operators/5.property-reference.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# 引用符

nGQL提供引用符来表示`WHERE``YIELD`子句中的属性,或者复合查询中管道符之前的语句输出结果。
nGQL 提供引用符来表示`WHERE``YIELD`子句中的属性,或者复合查询中管道符之前的语句输出结果。

## openCypher兼容性
## openCypher 兼容性

引用符仅适用于原生nGQL
引用符仅适用于原生 nGQL

## 引用符列表

|引用符|说明|
|:---|:---|
|`$^`|引用起始点。更多信息请参见[引用属性](../4.variable-and-composite-queries/3.property-reference.md)|
|`$$`|引用目的点。更多信息请参见[引用属性](../4.variable-and-composite-queries/3.property-reference.md)|
|`$-`|引用复合查询中管道符之前的语句输出结果。更多信息请参见[管道符](4.pipe.md)|
|`$^`|引用起始点。更多信息请参见 [引用属性](../4.variable-and-composite-queries/3.property-reference.md)|
|`$$`|引用目的点。更多信息请参见 [引用属性](../4.variable-and-composite-queries/3.property-reference.md)|
|`$-`|引用复合查询中管道符之前的语句输出结果。更多信息请参见 [管道符](4.pipe.md)|

## 示例

Expand All @@ -26,7 +26,7 @@ nebula> GO FROM "player100" OVER follow YIELD properties($^).age AS SrcAge, prop
| 42 | 41 |
+--------+---------+
# 返回player100追随的player的名称和团队
# 返回 player100 追随的 player 的名称和团队
nebula> GO FROM "player100" OVER follow \
YIELD dst(edge) AS id | \
GO FROM $-.id OVER serve \
Expand Down
24 changes: 11 additions & 13 deletions docs-2.0/3.ngql-guide/5.operators/6.set.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@

合并多个请求时,可以使用集合运算符,包括`UNION``UNION ALL``INTERSECT``MINUS`

所有集合运算符的优先级相同,如果一个nGQL语句中有多个集合运算符,Nebula Graph会从左到右进行计算,除非用括号指定顺序。
所有集合运算符的优先级相同,如果一个 nGQL 语句中有多个集合运算符,Nebula Graph 会从左到右进行计算,除非用括号指定顺序。

## openCypher兼容性
## openCypher 兼容性

集合运算符仅适用于原生nGQL
集合运算符仅适用于原生 nGQL

## UNION、UNION DISTINCT、UNION ALL

```ngql
<left> UNION [DISTINCT | ALL] <right> [ UNION [DISTINCT | ALL] <right> ...]
```

- 运算符`UNION DISTINCT`(或使用缩写`UNION`返回两个集合A和B的并集,不包含重复的元素。
- 运算符`UNION DISTINCT`(或使用缩写`UNION`返回两个集合 A 和 B 的并集,不包含重复的元素。

- 运算符`UNION ALL`返回两个集合A和B的并集,包含重复的元素。
- 运算符`UNION ALL`返回两个集合 A 和 B 的并集,包含重复的元素。

- `left``right`必须有相同数量的列和数据类型。如果需要转换数据类型,请参见[类型转换](../3.data-types/9.type-conversion.md)
- `left``right`必须有相同数量的列和数据类型。如果需要转换数据类型,请参见 [类型转换](../3.data-types/9.type-conversion.md)

### 示例

Expand All @@ -44,11 +44,10 @@ nebula> GO FROM "player102" OVER follow \
+-------------+
| "player100" |
| "player101" |
| "player101" |
| "player125" |
+-------------+
# UNION也可以和YIELD语句一起使用,去重时会检查每一行的所有列,每列都相同时才会去重。
# UNION 也可以和 YIELD 语句一起使用,去重时会检查每一行的所有列,每列都相同时才会去重。
nebula> GO FROM "player102" OVER follow \
YIELD dst(edge) AS id, properties(edge).degree AS Degree, properties($$).age AS Age \
UNION /* DISTINCT */ \
Expand All @@ -70,9 +69,9 @@ nebula> GO FROM "player102" OVER follow \
<left> INTERSECT <right>
```

- 运算符`INTERSECT`返回两个集合A和B的交集
- 运算符`INTERSECT`返回两个集合 A 和 B 的交集

- `left``right`必须有相同数量的列和数据类型。如果需要转换数据类型,请参见[类型转换](../3.data-types/9.type-conversion.md)
- `left``right`必须有相同数量的列和数据类型。如果需要转换数据类型,请参见 [类型转换](../3.data-types/9.type-conversion.md)

### 示例

Expand All @@ -85,7 +84,6 @@ nebula> GO FROM "player102" OVER follow \
+----+--------+-----+
| id | Degree | Age |
+----+--------+-----+
+----+--------+-----+
```

## MINUS
Expand All @@ -94,7 +92,7 @@ nebula> GO FROM "player102" OVER follow \
<left> MINUS <right>
```

运算符`MINUS`返回两个集合A和B的差异,即`A-B`。请注意`left``right`的顺序,`A-B`表示在集合A中,但是不在集合B中的元素
运算符`MINUS`返回两个集合 A 和 B 的差异,即`A-B`。请注意`left``right`的顺序,`A-B`表示在集合 A 中,但是不在集合 B 中的元素

### 示例

Expand All @@ -120,7 +118,7 @@ nebula> GO FROM "player102" OVER follow \

## 集合运算符和管道符的优先级

当查询包含集合运算符和管道符(|)时,[管道符](../5.operators/4.pipe.md)的优先级高。例如`GO FROM 1 UNION GO FROM 2 | GO FROM 3`相当于`GO FROM 1 UNION (GO FROM 2 | GO FROM 3)`
当查询包含集合运算符和管道符(|)时,[管道符](../5.operators/4.pipe.md) 的优先级高。例如`GO FROM 1 UNION GO FROM 2 | GO FROM 3`相当于`GO FROM 1 UNION (GO FROM 2 | GO FROM 3)`

### 示例

Expand Down
6 changes: 3 additions & 3 deletions docs-2.0/3.ngql-guide/5.operators/7.string.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 字符串运算符

Nebula Graph支持使用字符串运算符进行连接、搜索、匹配运算。支持的运算符如下。
Nebula Graph 支持使用字符串运算符进行连接、搜索、匹配运算。支持的运算符如下。

| 名称 | 说明 |
|:----- | :------------------ |
Expand Down Expand Up @@ -109,9 +109,9 @@ nebula> RETURN 'apple' ENDS WITH 'app', 'apple' ENDS WITH 'e', 'apple' ENDS WITH

!!! Note

当前仅opencypher兼容语句(`MATCH`、`WITH`等)支持正则表达式,原生nGQL语句(`FETCH`、`GO`、`LOOKUP`等)不支持正则表达式。
当前仅 opencypher 兼容语句(`MATCH`、`WITH`等)支持正则表达式,原生 nGQL 语句(`FETCH`、`GO`、`LOOKUP`等)不支持正则表达式。

Nebula Graph支持使用正则表达式进行过滤,正则表达式的语法是继承自`std::regex`,用户可以使用语法`=~ '<regexp>'`进行正则表达式匹配。例如:
Nebula Graph 支持使用正则表达式进行过滤,正则表达式的语法是继承自`std::regex`,用户可以使用语法`=~ '<regexp>'`进行正则表达式匹配。例如:

```ngql
nebula> RETURN "384748.39" =~ "\\d+(\\.\\d{2})?";
Expand Down
2 changes: 1 addition & 1 deletion docs-2.0/3.ngql-guide/5.operators/8.list.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 列表运算符

Nebula Graph支持使用列表(List)运算符进行运算。支持的运算符如下。
Nebula Graph 支持使用列表(List)运算符进行运算。支持的运算符如下。

| 名称 | 说明 |
|:----- |:------------------|
Expand Down
9 changes: 4 additions & 5 deletions docs-2.0/3.ngql-guide/5.operators/9.precedence.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# 运算符优先级

nGQL运算符的优先级从高到低排列如下(同一行的运算符优先级相同):

nGQL 运算符的优先级从高到低排列如下(同一行的运算符优先级相同):

- `-`(负数)
- `!``NOT`
Expand Down Expand Up @@ -34,8 +33,8 @@ nebula> RETURN (2+3)*5;
+-----------+
```

## openCypher兼容性
## openCypher 兼容性

在openCypher中,比较操作可以任意连接,例如`x < y <= z`等价于`x < y AND y <= z`
在 openCypher 中,比较操作可以任意连接,例如`x < y <= z`等价于`x < y AND y <= z`

在nGQL中`x < y <= z`等价于`(x < y) <= z``(x < y)`的结果是一个布尔值,再将布尔值和`z`比较,最终结果是`NULL`
在 nGQL 中`x < y <= z`等价于`(x < y) <= z``(x < y)`的结果是一个布尔值,再将布尔值和`z`比较,最终结果是`NULL`
52 changes: 26 additions & 26 deletions docs-2.0/3.ngql-guide/6.functions-and-expressions/1.math.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,46 @@

## 函数说明

Nebula Graph支持以下内置数学函数
Nebula Graph 支持以下内置数学函数

|函数| 说明 |
|:---- |:----|
|double abs(double x) | 返回x的绝对值|
|double floor(double x) | 返回小于或等于x的最大整数|
|double ceil(double x) | 返回大于或等于x的最小整数|
|double round(double x) | 返回离x最近的整数值,如果x恰好在中间,则返回离0较远的整数|
|double sqrt(double x) | 返回x的平方根|
|double cbrt(double x) | 返回x的立方根|
|double hypot(double x, double y) | 返回直角三角形(直角边长为x和y)的斜边长。 |
|double abs(double x) | 返回 x 的绝对值|
|double floor(double x) | 返回小于或等于 x 的最大整数|
|double ceil(double x) | 返回大于或等于 x 的最小整数|
|double round(double x) | 返回离 x 最近的整数值,如果 x 恰好在中间,则返回离 0 较远的整数|
|double sqrt(double x) | 返回 x 的平方根|
|double cbrt(double x) | 返回 x 的立方根|
|double hypot(double x, double y) | 返回直角三角形(直角边长为 x 和 y)的斜边长。 |
|double pow(double x, double y) | 返回$x^y$的值。 |
|double exp(double x) | 返回$e^x$的值。 |
|double exp2(double x) | 返回$2^x$的值。 |
|double log(double x) | 返回以自然数e为底x的对数|
|double log2(double x) | 返回以2为底x的对数|
|double log10(double x) | 返回以10为底x的对数|
|double sin(double x) | 返回x的正弦值|
|double asin(double x) | 返回x的反正弦值|
|double cos(double x) | 返回x的余弦值|
|double acos(double x) | 返回x的反余弦值|
|double tan(double x) | 返回x的正切值|
|double atan(double x) | 返回x的反正切值|
|double rand() | 返回[0,1)内的随机浮点数。 |
|int rand32(int min, int max) | 返回`[min, max)`内的一个随机32位整数。<br>用户可以只传入一个参数,该参数会判定为`max`,此时`min`默认为`0`。<br>如果不传入参数,此时会从带符号的32位int范围内随机返回|
|int rand64(int min, int max) | 返回`[min, max)`内的一个随机64位整数。<br>用户可以只传入一个参数,该参数会判定为`max`,此时`min`默认为`0`。<br>如果不传入参数,此时会从带符号的64位int范围内随机返回|
|double log(double x) | 返回以自然数 e 为底 x 的对数|
|double log2(double x) | 返回以 2 为底 x 的对数|
|double log10(double x) | 返回以 10 为底 x 的对数|
|double sin(double x) | 返回 x 的正弦值|
|double asin(double x) | 返回 x 的反正弦值|
|double cos(double x) | 返回 x 的余弦值|
|double acos(double x) | 返回 x 的反余弦值|
|double tan(double x) | 返回 x 的正切值|
|double atan(double x) | 返回 x 的反正切值|
|double rand() | 返回 [0,1) 内的随机浮点数。 |
|int rand32(int min, int max) | 返回`[min, max)`内的一个随机 32 位整数。<br>用户可以只传入一个参数,该参数会判定为`max`,此时`min`默认为`0`。<br>如果不传入参数,此时会从带符号的 32 位 int 范围内随机返回|
|int rand64(int min, int max) | 返回`[min, max)`内的一个随机 64 位整数。<br>用户可以只传入一个参数,该参数会判定为`max`,此时`min`默认为`0`。<br>如果不传入参数,此时会从带符号的 64 位 int 范围内随机返回|
|collect() | 将收集的所有值放在一个列表中。|
|avg() | 返回参数的平均值。|
|count() | 返回参数的数量。|
|max() | 返回参数的最大值。|
|min() | 返回参数的最小值。|
|std() | 返回参数的总体标准差。|
|sum() | 返回参数的和。|
|bit_and() | 逐位做AND操作|
|bit_or() | 逐位做OR操作|
|bit_xor() | 逐位做XOR操作|
|bit_and() | 逐位做 AND 操作|
|bit_or() | 逐位做 OR 操作|
|bit_xor() | 逐位做 XOR 操作|
|int size() | 返回列表或映射中元素的数量。|
|int range(int start, int end, int step) | 返回`[start,end]`中指定步长的值组成的列表。步长`step`默认为1|
|int sign(double x) | 返回x的正负号。<br>如果x为`0`,则返回`0`。<br>如果x为负数,则返回`-1`。<br>如果x为正数,则返回`1`|
|double e() | 返回自然对数的底e(2.718281828459045)。 |
|int range(int start, int end, int step) | 返回`[start,end]`中指定步长的值组成的列表。步长`step`默认为 1|
|int sign(double x) | 返回 x 的正负号。<br>如果 x 为`0`,则返回`0`。<br>如果 x 为负数,则返回`-1`。<br>如果 x 为正数,则返回`1`|
|double e() | 返回自然对数的底 e(2.718281828459045)。 |
|double pi() | 返回数学常数π(3.141592653589793)。|
|double radians() | 将角度转换为弧度。`radians(180)`返回`3.141592653589793`|

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# collect函数
# collect 函数

`collect()`函数返回一个符合表达式返回结果的列表。该函数可以将多条记录或值合并进一个列表,实现数据聚合。

`collect()`是一个聚合函数,类似SQL中的`GROUP BY`
`collect()`是一个聚合函数,类似 SQL 中的`GROUP BY`

## 示例

Expand Down Expand Up @@ -34,7 +34,7 @@ nebula> UNWIND [1, 2, 1] AS a \
| 1 | [1, 1] | 2 |
+---+------------+------------------+
# 降序排列,限制输出行数为3,然后将结果输出到列表中。
# 降序排列,限制输出行数为 3,然后将结果输出到列表中。
nebula> UNWIND ["c", "b", "a", "d" ] AS p \
WITH p AS q \
ORDER BY q DESC LIMIT 3 \
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# reduce函数
# reduce 函数

`reduce()`将表达式逐个应用于列表中的元素,然后和累加器中的当前结果累加,最后返回完整结果。该函数将遍历给定列表中的每个元素`e`,在`e`上运行表达式并和累加器的当前结果累加,将新的结果存储在累加器中。这个函数类似于函数式语言(如Lisp和Scala)中的fold或reduce方法
`reduce()`将表达式逐个应用于列表中的元素,然后和累加器中的当前结果累加,最后返回完整结果。该函数将遍历给定列表中的每个元素`e`,在`e`上运行表达式并和累加器的当前结果累加,将新的结果存储在累加器中。这个函数类似于函数式语言(如 Lisp 和 Scala)中的 fold 或 reduce 方法

## openCypher兼容性
## openCypher 兼容性

在openCypher中`reduce()`函数没有定义。nGQL使用了Cypher方式实现`reduce()`函数。
在 openCypher 中`reduce()`函数没有定义。nGQL 使用了 Cypher 方式实现`reduce()`函数。

## 语法

Expand Down
Loading

0 comments on commit 62fae25

Please sign in to comment.