use super::MappedVectorIndex;
use crate::error::SearchError;
use crate::hit::SearchHit;
use crate::hnsw::SearchPolicy;
use crate::parallel;
impl MappedVectorIndex {
pub fn search_batch(
&self,
queries: &[&[f32]],
count: usize,
) -> Result<Vec<Vec<SearchHit>>, SearchError> {
self.search_batch_with_policy(
queries,
count,
SearchPolicy::new(self.header.config.expansion_query),
)
}
pub fn search_batch_with_policy(
&self,
queries: &[&[f32]],
count: usize,
policy: SearchPolicy,
) -> Result<Vec<Vec<SearchHit>>, SearchError> {
let policy = policy.validate()?;
parallel::search_batch(queries, self.header.config.query_threads, |query| {
self.search_with_policy(query, count, policy)
})
}
}