weavatrix_search_vector/
metadata_search.rs1use crate::error::SearchError;
2use crate::hit::SearchHit;
3use crate::hnsw::VectorIndex;
4use crate::metadata::{MetadataFilter, MetadataIndex};
5use crate::storage::MappedVectorIndex;
6
7impl MetadataIndex {
8 pub fn search(
15 &self,
16 index: &VectorIndex,
17 query: &[f32],
18 count: usize,
19 filter: &MetadataFilter,
20 ) -> Result<Vec<SearchHit>, SearchError> {
21 index.search_filtered(query, count, |key| self.matches(key, filter))
22 }
23
24 pub fn search_mapped(
30 &self,
31 index: &MappedVectorIndex,
32 query: &[f32],
33 count: usize,
34 filter: &MetadataFilter,
35 ) -> Result<Vec<SearchHit>, SearchError> {
36 index.search_filtered(query, count, |key| self.matches(key, filter))
37 }
38}