Indexes are built to fast process graph queries. Nebula Graph supports two kinds of indexes: native indexes and full-text indexes. This topic introduces the index types and helps choose the right index.
Native indexes allow querying data based on a given property. Features are as follows.
- There are two kinds of native indexes: tag index and edge type index.
- Native indexes must be updated manually. You can use the
REBUILD INDEXstatement to update native indexes.
- Native indexes support indexing multiple properties on a tag or an edge type (composite indexes), but do not support indexing across multiple tags or edge types.
- You can do partial match searches by using composite indexes. The declared fields in the composite index are used from left to right. For more information, see LOOKUP FAQ.
- String operators like
STARTS WITHare not allowed in LOOKUP for native index searching. Use full-text indexes to do fuzzy searches.
Operations on native indexes¶
Full-text indexes are used to do prefix, wildcard, regexp, and fuzzy search on a string property. Features are as follows.
- Full-text indexes allow indexing just one property.
- Only strings within a specified length (no longer than 256 bytes) are indexed.
- Full-text indexes do not support logical operations such as
To do complete string matches, use native indexes.
Operations on full-text indexes¶
At this time, full-text indexes are created automatically on the Elasticsearch cluster. And rebuilding or altering full-text indexes are not supported. To drop full-text indexes, you need to drop them on the Elasticsearch cluster manually.
To query full-text indexes, see Search with full-text indexes.
Indexes do not support indexing null values.
In addition to querying single results from native indexes, you can also do range queries. Not all the native indexes support range queries. You can only do range searches for numeric, date, and time type properties.