Expand description
HNSW Algorithm Configuration
This module defines configuration parameters for Hierarchical Navigable Small World (HNSW) vector index construction and search operations. These parameters directly control index performance, memory usage, and search quality.
§Configuration Parameters
- Dimension: Vector dimension count (must match all vectors)
- M: Number of bi-directional connections per node (typically 5-48)
- ef_construction: Dynamic candidate list size during construction (typically 100-800)
- ef_search: Dynamic candidate list size during search (typically 10-200)
- ml: Maximum number of layers in the index
- distance_metric: Similarity calculation method
§Performance Impact
§M Parameter
- Higher M: Better recall, more memory, slower construction
- Lower M: Faster construction, less memory, potentially lower recall
- Recommended: 16 for most use cases, 32+ for high accuracy requirements
§ef_construction Parameter
- Higher ef_construction: Better index quality, slower construction
- Lower ef_construction: Faster construction, potentially lower search quality
- Recommended: 200 for balanced performance
§Examples
use sqlitegraph::hnsw::{HnswConfig, DistanceMetric};
let config = HnswConfig::builder()
.dimension(768)
.m_connections(16)
.ef_construction(200)
.ef_search(50)
.distance_metric(DistanceMetric::Cosine)
.build()
.unwrap();Structs§
- Hnsw
Config - HNSW algorithm configuration parameters
Functions§
- hnsw_
config - Create a new HnswConfig builder with default values