pub struct HnswIndex {
pub dimension: usize,
pub metric: DistanceMetric,
pub config: HnswConfig,
/* private fields */
}Fields§
§dimension: usize§metric: DistanceMetric§config: HnswConfigImplementations§
Source§impl HnswIndex
impl HnswIndex
pub fn new(dimension: usize, config: HnswConfig) -> Self
pub fn from_collection_config(config: &CollectionConfig) -> Self
Sourcepub fn load_file(path: &Path, config: &CollectionConfig) -> Result<Self>
pub fn load_file(path: &Path, config: &CollectionConfig) -> Result<Self>
Load a saved index from disk and return a concrete HnswIndex
(avoids the need to downcast the trait object returned by load_from).
Trait Implementations§
Source§impl IndexBackend for HnswIndex
impl IndexBackend for HnswIndex
fn build(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()>
fn insert(&mut self, id: VectorId, vector: Vector) -> Result<()>
fn search(&self, query: &Vector, k: usize) -> Result<Vec<(VectorId, f32)>>
fn delete(&mut self, id: &VectorId) -> Result<()>
fn save(&self, path: &Path) -> Result<()>
fn load_from(
path: &Path,
config: &CollectionConfig,
) -> Result<Box<dyn IndexBackend>>where
Self: Sized,
fn len(&self) -> usize
fn index_type(&self) -> IndexType
fn is_empty(&self) -> bool
fn rebuild(&mut self, vectors: Vec<(VectorId, Vector)>) -> Result<()>
Auto Trait Implementations§
impl Freeze for HnswIndex
impl RefUnwindSafe for HnswIndex
impl Send for HnswIndex
impl Sync for HnswIndex
impl Unpin for HnswIndex
impl UnsafeUnpin for HnswIndex
impl UnwindSafe for HnswIndex
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more