pub struct EdgeShard { /* private fields */ }Implementations§
Source§impl EdgeShard
impl EdgeShard
Sourcepub fn optimize(&self) -> OperationResult<bool>
pub fn optimize(&self) -> OperationResult<bool>
Run shard optimizers in-process and blocking until no more optimization plans are produced.
This is synchronous and does not spawn background optimization workers.
Source§impl EdgeShard
Inherent read API of EdgeShard, kept for backwards compatibility (edge is a public crate):
callers can use these without importing EdgeShardRead. Each just forwards to the trait’s
shared implementation.
impl EdgeShard
Inherent read API of EdgeShard, kept for backwards compatibility (edge is a public crate):
callers can use these without importing EdgeShardRead. Each just forwards to the trait’s
shared implementation.
Sourcepub fn search(
&self,
request: SearchRequest,
) -> OperationResult<Vec<ScoredPoint>>
pub fn search( &self, request: SearchRequest, ) -> OperationResult<Vec<ScoredPoint>>
This method is DEPRECATED and should be replaced with query.
pub fn query(&self, request: QueryRequest) -> OperationResult<Vec<ScoredPoint>>
pub fn scroll( &self, request: ScrollRequest, ) -> OperationResult<(Vec<RecordInternal>, Option<ExtendedPointId>)>
pub fn retrieve( &self, request: RetrieveRequest, ) -> OperationResult<Vec<RecordInternal>>
pub fn count(&self, request: CountRequest) -> OperationResult<usize>
pub fn facet(&self, request: FacetRequest) -> OperationResult<FacetResponse>
pub fn info(&self) -> OperationResult<ShardInfo>
Source§impl EdgeShard
impl EdgeShard
pub fn unpack_snapshot( snapshot_path: &Path, target_path: &Path, ) -> OperationResult<()>
pub fn snapshot_manifest(&self) -> OperationResult<SnapshotManifest>
pub fn recover_partial_snapshot( shard_path: &Path, current_manifest: &SnapshotManifest, snapshot_path: &Path, snapshot_manifest: &SnapshotManifest, ) -> OperationResult<Self>
Source§impl EdgeShard
impl EdgeShard
pub fn update( &self, operation: CollectionUpdateOperations, ) -> OperationResult<()>
Source§impl EdgeShard
impl EdgeShard
Sourcepub fn new(path: &Path, config: EdgeConfig) -> OperationResult<Self>
pub fn new(path: &Path, config: EdgeConfig) -> OperationResult<Self>
Create a new edge shard at path with the given configuration.
Fails if the shard already exists (i.e. the segments directory contains any segment).
Configuration is required and is persisted to edge_config.json. WAL
behavior follows config.wal_options (defaults to 32 MiB segments
when unset).
Sourcepub fn load(path: &Path, config: Option<EdgeConfig>) -> OperationResult<Self>
pub fn load(path: &Path, config: Option<EdgeConfig>) -> OperationResult<Self>
Load an edge shard from existing files at path.
Every tunable parameter resolves through the fallback chain
provided → persisted (edge_config.json) → derived from segments → default, so a
parameter left unspecified (None) keeps whatever the shard already has, while an
explicitly provided value overwrites it and existing segments converge to it through the
optimizers. The resolved config is persisted to edge_config.json.
vectors and sparse_vectors define the stored data and cannot be changed here: if
provided (non-empty), they are validated for compatibility against the loaded segments;
if not, they are taken from the persisted config or the segments themselves.
Fails if no segments exist and no config can be loaded or inferred.
To override WAL options (e.g. for embedded/mobile deployments where
the default 32 MiB segment capacity is too large), set
EdgeConfig::wal_options on the supplied config.
pub fn config(&self) -> RwLockReadGuard<'_, EdgeConfig>
pub fn path(&self) -> &Path
Sourcepub fn set_hnsw_config(&self, hnsw_config: HnswConfig) -> OperationResult<()>
pub fn set_hnsw_config(&self, hnsw_config: HnswConfig) -> OperationResult<()>
Update global HNSW config and persist. Does not change per-vector HNSW.
Sourcepub fn set_vector_hnsw_config(
&self,
vector_name: &str,
hnsw_config: HnswConfig,
) -> OperationResult<()>
pub fn set_vector_hnsw_config( &self, vector_name: &str, hnsw_config: HnswConfig, ) -> OperationResult<()>
Update HNSW config for a named vector and persist. Fails if the vector does not exist. Immutable fields (e.g. size, distance) cannot be changed.
Sourcepub fn set_optimizers_config(
&self,
optimizers: EdgeOptimizersConfig,
) -> OperationResult<()>
pub fn set_optimizers_config( &self, optimizers: EdgeOptimizersConfig, ) -> OperationResult<()>
Update optimizer config and persist.
Sourcepub fn flush(&self) -> OperationResult<()>
pub fn flush(&self) -> OperationResult<()>
Persist the WAL and all segments to disk.
Blocks until the WAL and segment locks are free, so a flush issued
concurrently with an in-flight update/optimize waits for it and then
persists, rather than spuriously failing with a “lock busy” error — the
same blocking-lock semantics those operations already use. Still fallible:
a genuine WAL/segment flush I/O error is surfaced instead of panicking.
Must not be called while already holding the wal mutex or a segments
guard on the same thread — parking_lot locks are non-reentrant and would
self-deadlock. No current caller does (the FFI boundary, Drop, the
Python bindings, and tests all invoke it without holding those locks).
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for EdgeShard
impl !RefUnwindSafe for EdgeShard
impl !UnwindSafe for EdgeShard
impl Send for EdgeShard
impl Sync for EdgeShard
impl Unpin for EdgeShard
impl UnsafeUnpin for EdgeShard
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> EdgeShardRead for Twhere
T: ReadViewProvider + ?Sized,
impl<T> EdgeShardRead for Twhere
T: ReadViewProvider + ?Sized,
Source§fn config_snapshot(&self) -> Arc<EdgeConfig>
fn config_snapshot(&self) -> Arc<EdgeConfig>
fn path(&self) -> &Path
Source§fn search(
&self,
request: SearchRequest,
) -> Result<Vec<ScoredPoint>, OperationError>
fn search( &self, request: SearchRequest, ) -> Result<Vec<ScoredPoint>, OperationError>
fn query( &self, request: QueryRequest, ) -> Result<Vec<ScoredPoint>, OperationError>
fn scroll( &self, request: ScrollRequest, ) -> Result<(Vec<RecordInternal>, Option<ExtendedPointId>), OperationError>
fn retrieve( &self, request: RetrieveRequest, ) -> Result<Vec<RecordInternal>, OperationError>
fn count(&self, request: CountRequest) -> Result<usize, OperationError>
fn facet(&self, request: FacetRequest) -> Result<FacetResponse, OperationError>
fn search_matrix( &self, request: SearchMatrixRequest, ) -> Result<SearchMatrixResponse, OperationError>
fn query_groups( &self, request: GroupRequest, ) -> Result<Vec<Group>, OperationError>
fn info(&self) -> Result<ShardInfo, OperationError>
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.