Dynamic Vamana Index

Documentation for the type-erased version of the svs::index::vamana::MutableVamanaIndex.

class DynamicVamana : public svs::manager::IndexManager<DynamicVamanaInterface>

DynamicVamana

Public Types

using search_parameters_type = typename IFace::search_parameters_type

Require the presence of the search_parameters_type alias in the instantiating interface.

Public Functions

inline explicit DynamicVamana(std::unique_ptr<manager::ManagerInterface<DynamicVamanaInterface>> impl)

Construct a new DynamicVamana instance.

Parameters:

impl – A pointer to a concrete implementation of the full DynamicVamanaInteface.

inline DynamicVamana &set_search_window_size(size_t search_window_size)

Set the search window size used to process queries.

Parameters:

search_window_size – The new search window size.

inline size_t get_search_window_size() const

The current search window size used to process queries.

inline bool has_id(size_t id) const

Return whether id is in the index.

inline std::vector<size_t> all_ids() const

Return all ids currently in the index.

Note: If the stored index is large, the returned container may result in a significant memory allocation.

If more precise handling is required, please work with the lower level C++ class directly.

inline void reconstruct_at(data::SimpleDataView<float> data, std::span<const uint64_t> ids)

Reconstruction.

inline size_t size() const

Return the number of elements in the indexed dataset.

inline size_t dimensions() const

Return the logical number of dimensions of each vector in the indexed dataset.

inline std::vector<svs::DataType> query_types() const

Return query-types that this index is specialized to work with.

inline bool can_change_threads() const

Return whether the back-end implementation can change the number of threads.

inline size_t get_num_threads() const

Return the current number of worker threads used by this index for searches.

inline void set_num_threads(size_t num_threads)

Set the number of threads to use for searching.

Only effective if can_change_threads() returns true.

Parameters:

num_threads – The number of threads to use. If set to 0, will implicitly default to 1.

struct AssembleTag