pub struct InMemoryVectorStore { /* private fields */ }Expand description
In-memory vector store using cosine similarity.
Implementations§
Source§impl InMemoryVectorStore
impl InMemoryVectorStore
pub fn new() -> Self
Sourcepub async fn from_texts(
texts: Vec<(&str, &str)>,
embeddings: &dyn Embeddings,
) -> Result<Self, SynapticError>
pub async fn from_texts( texts: Vec<(&str, &str)>, embeddings: &dyn Embeddings, ) -> Result<Self, SynapticError>
Create a new store pre-populated with texts.
Sourcepub async fn from_documents(
documents: Vec<Document>,
embeddings: &dyn Embeddings,
) -> Result<Self, SynapticError>
pub async fn from_documents( documents: Vec<Document>, embeddings: &dyn Embeddings, ) -> Result<Self, SynapticError>
Create a new store pre-populated with documents.
Sourcepub async fn max_marginal_relevance_search(
&self,
query: &str,
k: usize,
fetch_k: usize,
lambda_mult: f32,
embeddings: &dyn Embeddings,
) -> Result<Vec<Document>, SynapticError>
pub async fn max_marginal_relevance_search( &self, query: &str, k: usize, fetch_k: usize, lambda_mult: f32, embeddings: &dyn Embeddings, ) -> Result<Vec<Document>, SynapticError>
Maximum Marginal Relevance search for diverse results.
lambda_mult controls the trade-off between relevance and diversity:
- 1.0 = pure relevance (equivalent to standard similarity search)
- 0.0 = maximum diversity
- 0.5 = balanced (typical default)
fetch_k is the number of initial candidates to fetch before MMR filtering.
Trait Implementations§
Source§impl Default for InMemoryVectorStore
impl Default for InMemoryVectorStore
Source§impl VectorStore for InMemoryVectorStore
impl VectorStore for InMemoryVectorStore
Source§fn add_documents<'life0, 'life1, 'async_trait>(
&'life0 self,
docs: Vec<Document>,
embeddings: &'life1 dyn Embeddings,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn add_documents<'life0, 'life1, 'async_trait>(
&'life0 self,
docs: Vec<Document>,
embeddings: &'life1 dyn Embeddings,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Add documents to the store, computing their embeddings.
Source§fn similarity_search<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
embeddings: &'life2 dyn Embeddings,
) -> Pin<Box<dyn Future<Output = Result<Vec<Document>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn similarity_search<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
embeddings: &'life2 dyn Embeddings,
) -> Pin<Box<dyn Future<Output = Result<Vec<Document>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Search for similar documents by query string.
Source§fn similarity_search_with_score<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
embeddings: &'life2 dyn Embeddings,
) -> Pin<Box<dyn Future<Output = Result<Vec<(Document, f32)>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn similarity_search_with_score<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
embeddings: &'life2 dyn Embeddings,
) -> Pin<Box<dyn Future<Output = Result<Vec<(Document, f32)>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Search with similarity scores (higher = more similar).
Source§fn similarity_search_by_vector<'life0, 'life1, 'async_trait>(
&'life0 self,
embedding: &'life1 [f32],
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Document>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn similarity_search_by_vector<'life0, 'life1, 'async_trait>(
&'life0 self,
embedding: &'life1 [f32],
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Document>, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Search by pre-computed embedding vector instead of text query.
Auto Trait Implementations§
impl !Freeze for InMemoryVectorStore
impl !RefUnwindSafe for InMemoryVectorStore
impl Send for InMemoryVectorStore
impl Sync for InMemoryVectorStore
impl Unpin for InMemoryVectorStore
impl UnsafeUnpin for InMemoryVectorStore
impl UnwindSafe for InMemoryVectorStore
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