Indexes
The main index interfaces are listed here and in the next sections.Refer to this table when making decisions about which index to use.
svs::Vamana- A graph-based similarity search engine suitable for high recall, high throughput, and low latency.svs::DynamicVamana- A dynamic graph-based similarity search engine suitable for high recall, high throughput, and low latency.svs::Flat- An exhaustive search engine.Provides precise results at the expense of low throughput and high latency for large datasets.
Contents
- Vamana Index
- Dynamic Vamana Index
svs::DynamicVamanasearch_parameters_typeDynamicVamana()set_search_window_size()get_search_window_size()get_alpha()get_graph_max_degree()get_construction_window_size()get_max_candidates()get_prune_to()get_full_search_history()has_id()all_ids()reconstruct_at()batch_iterator()get_distance()size()dimensions()query_types()get_num_threads()set_threadpool()get_threadpool_handle()build()svs::DynamicVamana::AssembleTag
- Vamana Iterator
- Flat Orchestrator
Compatible Loaders
The table below lists the compatibility between different index and the different kinds of dataset (e.g., uncompressed, lvq etc).
Loader / Right: Index | ||
|---|---|---|
Build and Search | Search Only | |
Build and Search | Search Only |
Note
As an implementation detail, the indexes here are type-erased instances of more specialized, heavily templated implementations.These low level implementations generally have a similar API to the top level indexes and can be more expressive as functions calls do not have to cross a virtual function boundary.However, this specialization results in a different concrete type for each implementation which can be undesireable.More documentation regarding the low level implementation will be available in the future.