pub struct MemoryBackend { /* private fields */ }Expand description
In-memory FTS backend backed by HashMaps.
Keys are stored as "{collection}:{term}" for postings and
"{collection}:{doc_id}" for document lengths, matching the
scoping pattern used by the redb backend.
Uses RefCell for interior mutability so the FtsBackend trait
can use &self uniformly (redb has its own transactional isolation).
Implementations§
Source§impl MemoryBackend
impl MemoryBackend
pub fn new() -> MemoryBackend
Trait Implementations§
Source§impl Debug for MemoryBackend
impl Debug for MemoryBackend
Source§impl Default for MemoryBackend
impl Default for MemoryBackend
Source§fn default() -> MemoryBackend
fn default() -> MemoryBackend
Returns the “default value” for a type. Read more
Source§impl FtsBackend for MemoryBackend
impl FtsBackend for MemoryBackend
Source§type Error = MemoryError
type Error = MemoryError
Error type for backend operations.
Source§fn read_postings(
&self,
collection: &str,
term: &str,
) -> Result<Vec<Posting>, <MemoryBackend as FtsBackend>::Error>
fn read_postings( &self, collection: &str, term: &str, ) -> Result<Vec<Posting>, <MemoryBackend as FtsBackend>::Error>
Read the posting list for a term in a collection.
Source§fn write_postings(
&self,
collection: &str,
term: &str,
postings: &[Posting],
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn write_postings( &self, collection: &str, term: &str, postings: &[Posting], ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Write/replace the posting list for a term in a collection.
Source§fn remove_postings(
&self,
collection: &str,
term: &str,
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn remove_postings( &self, collection: &str, term: &str, ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Remove a term’s posting list entirely.
Source§fn read_doc_length(
&self,
collection: &str,
doc_id: &str,
) -> Result<Option<u32>, <MemoryBackend as FtsBackend>::Error>
fn read_doc_length( &self, collection: &str, doc_id: &str, ) -> Result<Option<u32>, <MemoryBackend as FtsBackend>::Error>
Read the document length (token count) for a document.
Source§fn write_doc_length(
&self,
collection: &str,
doc_id: &str,
length: u32,
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn write_doc_length( &self, collection: &str, doc_id: &str, length: u32, ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Write/replace the document length for a document.
Source§fn remove_doc_length(
&self,
collection: &str,
doc_id: &str,
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn remove_doc_length( &self, collection: &str, doc_id: &str, ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Remove a document’s length entry.
Source§fn collection_terms(
&self,
collection: &str,
) -> Result<Vec<String>, <MemoryBackend as FtsBackend>::Error>
fn collection_terms( &self, collection: &str, ) -> Result<Vec<String>, <MemoryBackend as FtsBackend>::Error>
Get all term keys for a collection (for fuzzy matching).
Returns terms without the collection prefix.
Source§fn collection_stats(
&self,
collection: &str,
) -> Result<(u32, u64), <MemoryBackend as FtsBackend>::Error>
fn collection_stats( &self, collection: &str, ) -> Result<(u32, u64), <MemoryBackend as FtsBackend>::Error>
Get total document count and sum of all document lengths for a collection.
Returns
(doc_count, total_token_sum). Read moreSource§fn increment_stats(
&self,
collection: &str,
doc_len: u32,
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn increment_stats( &self, collection: &str, doc_len: u32, ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Increment collection stats after indexing a document.
doc_len is the number of tokens in the newly indexed document.Source§fn decrement_stats(
&self,
collection: &str,
doc_len: u32,
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn decrement_stats( &self, collection: &str, doc_len: u32, ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Decrement collection stats after removing a document.
doc_len is the token count of the removed document.Source§fn read_meta(
&self,
key: &str,
) -> Result<Option<Vec<u8>>, <MemoryBackend as FtsBackend>::Error>
fn read_meta( &self, key: &str, ) -> Result<Option<Vec<u8>>, <MemoryBackend as FtsBackend>::Error>
Read a metadata blob by key (e.g., “docmap:{collection}”, “fieldnorms:{collection}”).
Source§fn write_meta(
&self,
key: &str,
value: &[u8],
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn write_meta( &self, key: &str, value: &[u8], ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Write a metadata blob by key.
Source§fn write_segment(
&self,
key: &str,
data: &[u8],
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn write_segment( &self, key: &str, data: &[u8], ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Write a segment blob. Key format: “{collection}:seg:{segment_id}”.
Source§fn read_segment(
&self,
key: &str,
) -> Result<Option<Vec<u8>>, <MemoryBackend as FtsBackend>::Error>
fn read_segment( &self, key: &str, ) -> Result<Option<Vec<u8>>, <MemoryBackend as FtsBackend>::Error>
Read a segment blob. Returns None if not found.
Source§fn list_segments(
&self,
collection: &str,
) -> Result<Vec<String>, <MemoryBackend as FtsBackend>::Error>
fn list_segments( &self, collection: &str, ) -> Result<Vec<String>, <MemoryBackend as FtsBackend>::Error>
List all segment keys for a collection (prefix “{collection}:seg:”).
Source§fn remove_segment(
&self,
key: &str,
) -> Result<(), <MemoryBackend as FtsBackend>::Error>
fn remove_segment( &self, key: &str, ) -> Result<(), <MemoryBackend as FtsBackend>::Error>
Remove a segment blob.
Source§fn purge_collection(
&self,
collection: &str,
) -> Result<usize, <MemoryBackend as FtsBackend>::Error>
fn purge_collection( &self, collection: &str, ) -> Result<usize, <MemoryBackend as FtsBackend>::Error>
Remove all entries for a collection prefix. Returns count of removed entries.
Auto Trait Implementations§
impl !Freeze for MemoryBackend
impl !RefUnwindSafe for MemoryBackend
impl Send for MemoryBackend
impl !Sync for MemoryBackend
impl Unpin for MemoryBackend
impl UnsafeUnpin for MemoryBackend
impl UnwindSafe for MemoryBackend
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.