Skip to main content

Module config

Module config 

Source
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§

HnswConfig
HNSW algorithm configuration parameters

Functions§

hnsw_config
Create a new HnswConfig builder with default values