Skip to content

Commit

Permalink
Update 2.match.md
Browse files Browse the repository at this point in the history
  • Loading branch information
whitewum authored Jan 17, 2022
1 parent 3492175 commit 325886d
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions docs-2.0/3.ngql-guide/7.general-query-statements/2.match.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

## 语法

`GO``LOOKUP`等其他查询语句相比,`MATCH`的语法更灵活。`MATCH`语法可以概括如下:
`GO``LOOKUP`等其他查询语句相比,`MATCH`的语法更灵活。`MATCH`语句采用的路径类型是[`trail`](../../1.introduction/2.1.path.md),即遍历时只有点可以重复,边不可以重复。

`MATCH` 语法如下:

```ngql
MATCH <pattern> [<clause_1>] RETURN <output> [<clause_2>];
Expand All @@ -24,21 +26,19 @@ MATCH <pattern> [<clause_1>] RETURN <output> [<clause_2>];

## 注意事项

!!! compatibility "历史版本兼容性"

从 3.0.0 版本开始,`pattern`支持同时匹配多个 Tag,所以返回属性时,需要额外指定 Tag 名称。即从`RETURN 变量名.属性名`改为`RETURN 变量名.Tag.属性名`。
除以下三种情况之外,请确保 `MATCH` 语句有**至少**一个[索引](../14.native-index-statements/1.create-native-index.md)可用。

- `MATCH`语句中的`WHERE`子句内不支持图模式
- A: `MATCH`语句中`WHERE`子句使用 id() 函数指定了点的 VID,不需要创建索引即可执行

- `MATCH`语句采用的路径类型是`trail`,即遍历时只有点可以重复,边不可以重复。详情请参见[路径](../../1.introduction/2.1.path.md)
- B1: 当遍历所有点边时,例如`MATCH (v) RETURN v LIMIT N`,不需要创建索引,但必须使用`LIMIT`限制输出结果数量

- `MATCH`语句中`WHERE`子句使用 id() 函数指定了点的 VID,不需要创建索引即可执行
- B2: 当遍历指定 Tag 的点或指定 Edge Type 的边时,例如`MATCH (v:player) RETURN v LIMIT N`,不需要创建索引,但必须使用`LIMIT`限制输出结果数量

- 当遍历所有点边时,例如`MATCH (v) RETURN v LIMIT N`,不需要创建索引,但需要使用`LIMIT`限制输出结果数量。
此外:

- 当遍历指定 Tag 的点或指定 Edge Type 的边时,例如`MATCH (v:player) RETURN v LIMIT N`,不需要创建索引,但需要使用`LIMIT`限制输出结果数量
+ `MATCH`语句中的`WHERE`子句内**不支持**图模式

- 除以上三种情况之外,请确保`MATCH`语句有至少一个索引可用。如何使用索引,请参见[创建原生索引](../14.native-index-statements/1.create-native-index.md)
+ 从 3.0.0 版本开始,`pattern`支持同时匹配多个 Tag。所以返回属性时,必须额外指定 Tag 名称。即从`RETURN <变量名>.<属性名>`改为`RETURN <变量名>.<Tag名>.<属性名>`

## 示例

Expand Down

0 comments on commit 325886d

Please sign in to comment.