pub struct MultiVectorIndex { /* private fields */ }Expand description
Deterministic vector index allowing multiple vectors per caller key.
Implementations§
Source§impl MultiVectorIndex
impl MultiVectorIndex
Sourcepub fn build(
config: IndexConfig,
vectors: &[MultiVectorRef<'_>],
) -> Result<Self, SearchError>
pub fn build( config: IndexConfig, vectors: &[MultiVectorRef<'_>], ) -> Result<Self, SearchError>
Builds one HNSW node per unique (key, vector_id) pair.
Input order does not affect internal IDs or graph construction.
§Errors
Returns typed config, vector, duplicate identity, capacity, or allocation errors.
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub const fn dimensions(&self) -> usize
pub fn config(&self) -> &IndexConfig
pub fn estimated_memory_bytes(&self) -> usize
Sourcepub fn search(
&self,
query: &[f32],
count: usize,
) -> Result<Vec<MultiSearchHit>, SearchError>
pub fn search( &self, query: &[f32], count: usize, ) -> Result<Vec<MultiSearchHit>, SearchError>
Returns top vectors, allowing repeated caller keys.
§Errors
Returns a typed query or allocation error.
Sourcepub fn search_exact(
&self,
query: &[f32],
count: usize,
) -> Result<Vec<MultiSearchHit>, SearchError>
pub fn search_exact( &self, query: &[f32], count: usize, ) -> Result<Vec<MultiSearchHit>, SearchError>
Returns exact top vectors, allowing repeated caller keys.
§Errors
Returns a typed query or allocation error.
Sourcepub fn search_unique_keys(
&self,
query: &[f32],
count: usize,
) -> Result<Vec<MultiSearchHit>, SearchError>
pub fn search_unique_keys( &self, query: &[f32], count: usize, ) -> Result<Vec<MultiSearchHit>, SearchError>
Returns at most one best vector for each caller key.
The approximate pass widens candidates; an exact fallback fills sparse key distributions.
§Errors
Returns a typed query or allocation error.
Sourcepub fn search_filtered<F>(
&self,
query: &[f32],
count: usize,
filter: F,
) -> Result<Vec<MultiSearchHit>, SearchError>
pub fn search_filtered<F>( &self, query: &[f32], count: usize, filter: F, ) -> Result<Vec<MultiSearchHit>, SearchError>
Sourcepub fn search_batch(
&self,
queries: &[&[f32]],
count: usize,
) -> Result<Vec<Vec<MultiSearchHit>>, SearchError>
pub fn search_batch( &self, queries: &[&[f32]], count: usize, ) -> Result<Vec<Vec<MultiSearchHit>>, SearchError>
Source§impl MultiVectorIndex
impl MultiVectorIndex
Sourcepub fn to_bytes(&self) -> Result<Vec<u8>, SearchError>
pub fn to_bytes(&self) -> Result<Vec<u8>, SearchError>
Serializes the graph and caller-visible (key, vector_id) identities.
§Errors
Returns a capacity or allocation error.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self, SearchError>
pub fn from_bytes(bytes: &[u8]) -> Result<Self, SearchError>
Restores and validates a graph and its multi-vector identities.
§Errors
Returns a format, integrity, graph, or allocation error.
Sourcepub fn write_to(&self, writer: impl Write) -> Result<(), SearchError>
pub fn write_to(&self, writer: impl Write) -> Result<(), SearchError>
Writes a complete multi-vector snapshot to a stream.
§Errors
Returns a serialization or stream error.
Sourcepub fn read_from(reader: impl Read) -> Result<Self, SearchError>
pub fn read_from(reader: impl Read) -> Result<Self, SearchError>
Reads a complete multi-vector snapshot from a stream.
§Errors
Returns a stream, format, or integrity error.