Skip to main content
Current constraints and practical limits. These reflect the current implementation, not fundamental architectural boundaries.

Data Model

LimitValue
Node and edge ID range64-bit unsigned integer (max 2^63)
Property value typesboolean, integer, float, string, bytes, and array variants
Nested structuresNot supported. Properties are flat key-value pairs.
Reserved property keys$label (used for label-based filtering and label-scoped secondary, vector, and text indexes)

Vector Indexes

LimitValue
ScopeNode and edge properties
Supported property typesNumeric array properties (float32[], float64[], int64[]) normalized to float32 for indexing
Tenant partitioningOptional by configured tenant property name. Tenant-scoped searches require a tenant value. Unknown tenant partitions return no results.
Dimension matchingVectors must exactly match the configured index dimension
Distance metricscosine, euclidean, manhattan
Search typeApproximate nearest neighbor (ANN)

Text Indexes

LimitValue
ScopeNode and edge properties
Supported property typesString and StringArray
Unsupported valuesnull and non-string values are rejected
Analyzer configPreset analyzers: standard, standard_stem_en, whitespace_lowercase
Term positionsOptional
Tenant partitioningOptional. Tenant-partitioned text indexes currently require the partition property name to be tenant_id, and tenant-scoped searches require a tenant value.

Secondary Indexes

LimitValue
Equality indexesSupported on node and edge properties
Range indexesSupported on numeric and string properties
EncodingRange indexes use lexicographic string encoding. Values must be encoded consistently for correct ordering.

Queries

LimitValue
Query modelStored procedures and runtime queries
Query languageRust DSL
Transaction scopeOne transaction per query invocation