Crate hnsw_rs

source ·

Modules§

  • Api for external language.
    This file provides a trait to be used as an opaque pointer for C or Julia calls used in file libext.rs
  • This module provides a memory mapping of Data vectors filling the Hnsw structure. It is managed by the module hnswio
  • module for distance implementation
  • defines a trait for filtering requests.
    See examples in tests/filtertest.rs
  • This module provides conversion of a Point structure to a FlatPoint containing just the Id of a point and those of its neighbours. The whole Hnsw structure is then flattened into a Hashtable associating the data ID of a point to its corresponding FlatPoint.
    It can be used, for example, when reloading only the graph part of the data to have knowledge of relative proximity of points as described just by their DataId
  • A rust implementation of Approximate NN search from:
    Efficient and robust approximate nearest neighbour search using Hierarchical Navigable small World graphs. Yu. A. Malkov, D.A Yashunin 2016, 2018
  • This module provides io dump/ reload of computed graph via the structure Hnswio.
    This structure stores references to data points if memory map is used.
  • This file contains lib to call hnsw from julia (or any language providing a C api) The AnnT trait is implemented with macros for u32, u16, u8, f32, f64 and i32.
    The macro declare_myapi_type! produces struct HnswApif32 and so on.

Macros§