REBUILD INDEX¶
Danger
If data is updated or inserted before the creation of the index, you must rebuild the indexes manually to make sure that the indexes contain the previously added data. Otherwise, you cannot use LOOKUP
and MATCH
to query the data based on the index. If the index is created before any data insertion, there is no need to rebuild the index.
During the rebuilding, all queries skip the index and perform sequential scans. This means that the return results can be different because not all the data is indexed during rebuilding.
You can use REBUILD INDEX
to rebuild the created tag or edge type index. For details on how to create an index, see CREATE INDEX.
Syntax¶
REBUILD {TAG | EDGE} INDEX [<index_name_list>];
<index_name_list>::=
[index_name [, index_name] ...]
- Multiple indexes are permitted in a single
REBUILD
statement, separated by commas. When the index name is not specified, all tag or edge indexes are rebuilt.
- After the rebuilding is complete, you can use the
SHOW {TAG | EDGE} INDEX STATUS
command to check if the index is successfully rebuilt. For details on index status, see SHOW INDEX STATUS.
Examples¶
nebula> CREATE TAG IF NOT EXISTS person(name string, age int, gender string, email string);
nebula> CREATE TAG INDEX IF NOT EXISTS single_person_index ON person(name(10));
# The following example rebuilds an index and returns the job ID.
nebula> REBUILD TAG INDEX single_person_index;
+------------+
| New Job Id |
+------------+
| 31 |
+------------+
# The following example checks the index status.
nebula> SHOW TAG INDEX STATUS;
+-----------------------+--------------+
| Name | Index Status |
+-----------------------+--------------+
| "single_person_index" | "FINISHED" |
+-----------------------+--------------+
# You can also use "SHOW JOB <job_id>" to check if the rebuilding process is complete.
nebula> SHOW JOB 31;
+----------------+---------------------+------------+-------------------------+-------------------------+
| Job Id(TaskId) | Command(Dest) | Status | Start Time | Stop Time |
+----------------+---------------------+------------+-------------------------+-------------------------+
| 31 | "REBUILD_TAG_INDEX" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:24.000 |
| 0 | "storaged1" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:28.000 |
| 1 | "storaged2" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:28.000 |
| 2 | "storaged0" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:28.000 |
+----------------+---------------------+------------+-------------------------+-------------------------+
NebulaGraph creates a job to rebuild the index. The job ID is displayed in the preceding return message. To check if the rebuilding process is complete, use the SHOW JOB <job_id>
statement. For more information, see SHOW JOB.