pub struct OpenSearchVectorStore { /* private fields */ }Expand description
A VectorStore implementation backed by OpenSearch.
Uses OpenSearch’s k-NN plugin with HNSW indexing for approximate nearest
neighbor search. Call initialize
to create the index with correct mappings before inserting documents.
Implementations§
Source§impl OpenSearchVectorStore
impl OpenSearchVectorStore
Sourcepub fn new(config: OpenSearchConfig) -> Self
pub fn new(config: OpenSearchConfig) -> Self
Create a new store with the given configuration.
Sourcepub fn config(&self) -> &OpenSearchConfig
pub fn config(&self) -> &OpenSearchConfig
Return a reference to the configuration.
Sourcepub async fn initialize(&self) -> Result<(), SynapticError>
pub async fn initialize(&self) -> Result<(), SynapticError>
Create the OpenSearch index with k-NN mappings if it does not exist.
This is idempotent — calling it when the index already exists is safe.
Trait Implementations§
Source§impl VectorStore for OpenSearchVectorStore
impl VectorStore for OpenSearchVectorStore
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 OpenSearchVectorStore
impl !RefUnwindSafe for OpenSearchVectorStore
impl Send for OpenSearchVectorStore
impl Sync for OpenSearchVectorStore
impl Unpin for OpenSearchVectorStore
impl UnsafeUnpin for OpenSearchVectorStore
impl !UnwindSafe for OpenSearchVectorStore
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