Skip to content

Commit

Permalink
update index (#80)
Browse files Browse the repository at this point in the history
* update index

* update
  • Loading branch information
Amber1990Zhang committed Sep 18, 2020
1 parent dd6f908 commit 2810a2b
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

`LOOKUP` 语句指定过滤条件对数据进行查询。`LOOKUP` 语句之后通常跟着 `WHERE` 子句。`WHERE` 子句用于向条件中添加过滤性的谓词,从而对数据进行过滤。

**注意:** 在使用 `LOOKUP` 语句之前,请确保已创建索引。查看[索引文档](../1.data-definition-statements/index.md)了解有关索引的更多信息。
> **注意:** 在使用 `LOOKUP` 语句之前,请确保已创建索引。查看[索引文档](../1.data-definition-statements/index.md)了解有关索引的更多信息。
```ngql
LOOKUP ON {<vertex_tag> | <edge_type>} WHERE <expression> [ AND | OR expression ...]) ] [YIELD <return_list>]
Expand All @@ -12,13 +12,18 @@ LOOKUP ON {<vertex_tag> | <edge_type>} WHERE <expression> [ AND | OR expression
```

- `LOOKUP` 语句用于寻找点或边的集合。
- `WHERE` 指定被筛选的逻辑条件。同样支持逻辑关键词 AND、OR、NOT,详情参见 [WHERE](where-syntax.md) 的用法。
**注意:** `WHERE` 子句在 `LOOKUP` 中暂不支持如下操作:
- `$-``$^`
- 在关系表达式中,暂不支持操作符两边都是field-name 的表达式,如 (tagName.column1 > tagName.column2)
- 暂不支持运算表达式和 function 表达式中嵌套 AliasProp 表达式。
- `WHERE` 指定被筛选的逻辑条件。同样支持逻辑关键词 AND,详情参见 [WHERE](where-syntax.md) 的用法。
- `YIELD` 指定返回结果。如未指定,则在 `LOOKUP` 标签时返回点 ID,在 `LOOKUP` 边类型时返回边的起点 ID、终点 ID 和 ranking 值。

## 索引使用限制

`WHERE` 子句在 `LOOKUP` 中暂不支持如下操作:

- `$-``$^`
- 在关系表达式中,暂不支持操作符两边都是field-name 的表达式,如 (tagName.column1 > tagName.column2)
- 暂不支持运算表达式和 function 表达式中嵌套 AliasProp 表达式。
- 字符串类型的索引不支持范围查询。

## 点查询

如下示例返回名称为 `Tony Parker`,标签为 _player_ 的点。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@

## 系统要求

以下为编译**Nebula Graph**机器所需配置要求,运行环境所需配置要求见[这里](../3.configurations/0.system-requirement.md)

* 处理器: x86_64
* 内存: 至少 4GB
* 存储空间: 至少 10GB
* Linux 内核: 2.6.32 或更高版本,通过命令`uname -r`查看
* glibc: 2.12 或更高版本,通过命令`ldd --version`查看
* GCC: 7.1.0 或更高版本,通过命令`g++ --version`查看
* CMake: 3.5.0 或更高版本,通过命令`cmake --version`查看
以下为编译 Nebula Graph 机器所需配置要求,运行环境所需配置要求见[这里](../3.configurations/0.system-requirement.md)

* 处理器x86_64
* 内存至少 4GB
* 存储空间至少 10GB
* Linux 内核2.6.32 或更高版本,通过命令`uname -r`查看
* glibc2.12 或更高版本,通过命令`ldd --version`查看
* GCC7.1.0 或更高版本,通过命令`g++ --version`查看
* CMake3.5.0 或更高版本,通过命令`cmake --version`查看
* 能够访问互联网

**注意**: **Nebula Graph** 目前仅支持 x86_64 架构。
**注意**Nebula Graph 目前仅支持 x86_64 架构。

## 快速编译步骤

Expand Down Expand Up @@ -118,18 +118,18 @@ $ sudo cp etc/nebula-graphd.conf.default etc/nebula-graphd.conf

详情参考[启动和停止 Nebula Graph 服务文档](../2.install/2.start-stop-service.md)

由于 **Nebula Graph** 使用了大量的 C++ 模板,尤其是 Follyfbthrift 和 boost,因此编译会非常耗时。比如,如果使用 Intel E5-2697 v3 处理器,在 16 个任务并发运行的情况下,需要花费大约 4 分钟完成编译,总的 CPU 时间大约 35 分钟。
由于 Nebula Graph 使用了大量的 C++ 模板,尤其是 Follyfbthrift 和 boost,因此编译会非常耗时。比如,如果使用 Intel E5-2697 v3 处理器,在 16 个任务并发运行的情况下,需要花费大约 4 分钟完成编译,总的 CPU 时间大约 35 分钟。

### 源码打包(可选)

* 如需将 **Nebula Graph** 打包至一个包,请使用以下命令:
* 如需将 Nebula Graph 打包至一个包,请使用以下命令:

```bash
cd nebula/package
./package.sh -v <version>
```

* 如需将 **Nebula Graph** 打包至多个包,请使用以下命令:
* 如需将 Nebula Graph 打包至多个包,请使用以下命令:

```bash
cd nebula/package
Expand All @@ -138,27 +138,27 @@ cd nebula/package

## 编译选项

除默认选项外,**Nebula Graph** 的编译系统还提供诸多选项来调整编译行为。
除默认选项外,Nebula Graph 的编译系统还提供诸多选项来调整编译行为。

### CMake 参数

可通过 `cmake -DArgument=Value ..` 调整 CMake 参数。

#### ENABLE_WERROR

默认情况下,**Nebula Graph** 使用 `-Werror` 选项将编译过程中的告警当成错误。如果在编译过程中遇到了类似情况,可以通过将 `ENABLE_WERROR` 设置为 `OFF` 来暂时忽略此类错误。
默认情况下,Nebula Graph 使用 `-Werror` 选项将编译过程中的告警当成错误。如果在编译过程中遇到了类似情况,可以通过将 `ENABLE_WERROR` 设置为 `OFF` 来暂时忽略此类错误。

#### ENABLE_TESTING

该选项允许用户开启或关闭单元测试的编译,默认开启。如果您只需要编译 **Nebula Graph** 服务模块,可以将该选项设置为 `OFF`
该选项允许用户开启或关闭单元测试的编译,默认开启。如果您只需要编译 Nebula Graph 服务模块,可以将该选项设置为 `OFF`

#### ENABLE_ASAN

该选项允许用户开启或关闭 AddressSanitizer(内存相关错误检测器),默认关闭。

#### CMAKE_BUILD_TYPE

**Nebula Graph** 支持以下几种编译类型:
Nebula Graph 支持以下几种编译类型:

* `Debug`,启用调试信息,不启用优化选项,为默认编译类型
* `Release`,启用优化选项,不启用调试信息
Expand All @@ -167,7 +167,7 @@ cd nebula/package

#### CMAKE_INSTALL_PREFIX

该选项用于指定执行 `make install` 命令时,**Nebula Graph** 的服务模块、配置文件以及工具集的安装路径,默认为 `/usr/local/nebula`
该选项用于指定执行 `make install` 命令时,Nebula Graph 的服务模块、配置文件以及工具集的安装路径,默认为 `/usr/local/nebula`

#### CMAKE_CXX_COMPILER

Expand All @@ -180,9 +180,9 @@ $ cmake -DCMAKE_C_COMPILER=/path/to/clang/bin/clang -DCMAKE_CXX_COMPILER=/path/t

#### ENABLE_CCACHE

`ccache` 可以加快编译过程,主要用于开发过程。如果系统中安装了 `ccache`**Nebula Graph** 默认会自动启用该选项。
`ccache` 可以加快编译过程,主要用于开发过程。如果系统中安装了 `ccache`,Nebula Graph 默认会自动启用该选项。

但是,如果你想禁用 `ccache`,将该选项设置成 `OFF` _可能_ 是不够的。因为,在某些系统中,`ccache` 会_代理_ 当前编译器。此时,需要通过设置环境变量 `export CCACHE_DISABLE=true`,或者在 `~/.ccache/ccache.conf` 文件中添加 `disable=true`。后续 **Nebula Graph** 将隐藏这些细节。
但是,如果你想禁用 `ccache`,将该选项设置成 `OFF` _可能_ 是不够的。因为,在某些系统中,`ccache` 会_代理_ 当前编译器。此时,需要通过设置环境变量 `export CCACHE_DISABLE=true`,或者在 `~/.ccache/ccache.conf` 文件中添加 `disable=true`。后续 Nebula Graph 将隐藏这些细节。

另外,关于 `ccache` 的更多细节,请参考[官方文档](https://ccache.dev/manual/3.7.6.html)

Expand All @@ -196,14 +196,14 @@ $ cmake -DCMAKE_C_COMPILER=/path/to/clang/bin/clang -DCMAKE_CXX_COMPILER=/path/t

### 手动安装 Third Party

在 configure/cmake 阶段,**Nebula Graph** 默认将预先编译好的 third party 下载到当前 build 目录。但是如果你想将其安装到其他路径(比如,安装到某个公共目录),你可以:
在 configure/cmake 阶段,Nebula Graph 默认将预先编译好的 third party 下载到当前 build 目录。但是如果你想将其安装到其他路径(比如,安装到某个公共目录),你可以:

```bash
# 安装 third party 至 /opt 需要 root 权限,可使用 --prefix 改变安装路径
$ ../third-party/install-third-party.sh --prefix=/opt/vesoft/third-party
```

如果不指定 `--prefix`,third party 的默认安装路径为 `/opt/vesoft/third-party`,且可为 **Nebula Graph** 的编译系统自动找到。否则,需使用上文所述的 `NEBULA_THIRDPARTY_ROOT` CMake 参数指定路径,或为该路径设置环境变量并导出。 **Nebula Graph** 查找并选择 third party 的优先级如下:
如果不指定 `--prefix`,third party 的默认安装路径为 `/opt/vesoft/third-party`,且可为 Nebula Graph 的编译系统自动找到。否则,需使用上文所述的 `NEBULA_THIRDPARTY_ROOT` CMake 参数指定路径,或为该路径设置环境变量并导出。 Nebula Graph 查找并选择 third party 的优先级如下:

1. CMake 变量 `NEBULA_THIRDPARTY_ROOT`
2. build 路径下的 `third-party/install`
Expand Down Expand Up @@ -255,7 +255,7 @@ Copyright (C) 2017 Free Software Foundation, Inc.

## 无网络编译

如果在编译源码时无法连接网络,则必须手动下载以上工具和依赖,包括 **Nebula Graph** 仓库中的 GCC 编译器,第三方库和 CMake。然后,将所有内容复制到你的机器上。以下是快速指南。详细信息请参考上述步骤。
如果在编译源码时无法连接网络,则必须手动下载以上工具和依赖,包括 Nebula Graph 仓库中的 GCC 编译器,第三方库和 CMake。然后,将所有内容复制到你的机器上。以下是快速指南。详细信息请参考上述步骤。

首先,需要有一台可以连接外网的主机,并下载以下文件:

Expand Down Expand Up @@ -297,17 +297,17 @@ $ export PATH=/opt/vesoft/toolset/cmake:$PATH
$ sudo bash vesoft-third-party-x86_64-libc-2.12-gcc-7.5.0-abi-11.sh
```

现在您就可以下载并编译 **Nebula Graph** 项目了。
现在您就可以下载并编译 Nebula Graph 项目了。

## 卸载

卸载前,请先停止服务。在 `make` 目录下使用 `make uninstall` 命令即可卸载 **Nebula Graph**。请注意卸载之后配置文件不会删除。
卸载前,请先停止服务。在 `make` 目录下使用 `make uninstall` 命令即可卸载 Nebula Graph。请注意卸载之后配置文件不会删除。

## FAQ

### `error: invalid argument type 'auto' to unary expression`

当使用 Clang 9.0 编译 **Nebula Graph** 时,会发生该错误:
当使用 Clang 9.0 编译 Nebula Graph 时,会发生该错误:

```bash
[ 5%] Building CXX object src/common/fs/CMakeFiles/fs_obj.dir/FileUtils.cpp.o
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ rpm -ivh --prefix=${your_dir} nebula-graph-${version}.rpm

## 卸载

卸载前,请先停止服务。如果使用 rpm 安装,使用 `rpm -qa | grep nebula` 命令搜索 `nebula`,然后把结果传给 rpm -e 同理即可卸载。使用 deb 安装则需通过 `dpkg` 卸载。请注意卸载之后配置文件不会删除。
卸载前,请先停止服务。如果使用 rpm 安装,使用 `rpm -qa | grep nebula` 命令搜索 `nebula`,然后把结果传给 rpm -e 即可卸载。使用 deb 安装则需通过 `dpkg` 卸载。请注意卸载之后配置文件不会删除。

```bash
# rpm
Expand Down

0 comments on commit 2810a2b

Please sign in to comment.