REBUILD INDEX
为保障服务性能,索引不会自动对其创建之前已存在的数据生效。请在创建索引后,选择合适的时间为存量数据重建索引。在索引重建完成之前,无法基于该索引使用LOOKUP
和MATCH
语句查询到存量数据。使用索引的详情请参见CREATE INDEX。
说明:重建索引期间,所有查询都会跳过索引并执行顺序扫描,返回结果可能不一致。
语法
REBUILD {TAG | EDGE} INDEX [<index_name_list>];
<index_name_list>::=
[index_name [, index_name] ...]
可以一次重建多个索引,索引名称之间用英文逗号(,)分隔。如果没有指定索引名称,将会重建所有索引。
重建完成后,您可以使用命令
SHOW {TAG | EDGE} INDEX STATUS
检查索引是否重建完成。详情请参见SHOW INDEX STATUS。
示例
nebula> CREATE TAG person(name string, age int, gender string, email string);
nebula> CREATE TAG INDEX single_person_index ON person(name(10));
# 重建索引,返回任务ID。
nebula> REBUILD TAG INDEX single_person_index;
+------------+
| New Job Id |
+------------+
| 66 |
+------------+
# 查看索引状态。
nebula> SHOW TAG INDEX STATUS;
+-----------------------+--------------+
| Name | Index Status |
+-----------------------+--------------+
| "single_person_index" | "FINISHED" |
+-----------------------+--------------+
# 也可以使用SHOW JOB <job_id>查看重建索引的任务状态。
nebula> SHOW JOB 66;
+----------------+---------------------+------------+-------------------------+-------------------------+
| Job Id(TaskId) | Command(Dest) | Status | Start Time | Stop Time |
+----------------+---------------------+------------+-------------------------+-------------------------+
| 66 | "REBUILD_TAG_INDEX" | "FINISHED" | 2021-03-31T03:35:21.000 | 2021-03-31T03:35:21.000 |
+----------------+---------------------+------------+-------------------------+-------------------------+
Nebula Graph创建一个任务去重建索引,因此可以根据返回的任务ID,通过SHOW JOB <job_id>
语句查看任务状态。详情请参见SHOW JOB。
历史版本兼容性
在Nebula Graph 2.0中,不需要也不支持选项OFFLINE
。