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
andMATCH
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. - When the rebuild of an index is incomplete, queries that rely on the index can use only part of the index and therefore cannot obtain accurate results.
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.
Caution
The speed of rebuilding indexes can be optimized by modifying the rebuild_index_part_rate_limit
and snapshot_batch_size
parameters in the configuration file. In addition, greater parameter values may result in higher memory and network usage, see Storage Service configurations for details.
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 | Error Code |
+----------------+---------------------+------------+-------------------------+-------------------------+-------------+
| 31 | "REBUILD_TAG_INDEX" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:24.000 | "SUCCEEDED" |
| 0 | "storaged1" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:28.000 | "SUCCEEDED" |
| 1 | "storaged2" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:28.000 | "SUCCEEDED" |
| 2 | "storaged0" | "FINISHED" | 2021-07-07T09:04:24.000 | 2021-07-07T09:04:28.000 | "SUCCEEDED" |
| "Total:3" | "Succeeded:3" | "Failed:0" | "In Progress:0" | "" | "" |
+----------------+---------------------+------------+-------------------------+-------------------------+-------------+
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.
Last update:
November 3, 2023