pub struct ChromaVectorStore { /* private fields */ }Expand description
Chroma 向量存储
使用 Chroma 本地或云服务进行向量存储和检索。
Implementations§
Source§impl ChromaVectorStore
impl ChromaVectorStore
pub fn new(config: RemoteVectorStoreConfig) -> Layer3Result<Self>
Trait Implementations§
Source§impl VectorStore for ChromaVectorStore
impl VectorStore for ChromaVectorStore
Source§fn add<'life0, 'async_trait>(
&'life0 self,
id: String,
vector: Vec<f32>,
metadata: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add<'life0, 'async_trait>(
&'life0 self,
id: String,
vector: Vec<f32>,
metadata: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
添加向量
Source§fn add_batch<'life0, 'async_trait>(
&'life0 self,
items: Vec<VectorItem>,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<bool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_batch<'life0, 'async_trait>(
&'life0 self,
items: Vec<VectorItem>,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<bool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
批量添加向量(优化版本) Read more
Source§fn query<'life0, 'async_trait>(
&'life0 self,
vector: Vec<f32>,
top_k: usize,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<RetrievalResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn query<'life0, 'async_trait>(
&'life0 self,
vector: Vec<f32>,
top_k: usize,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<RetrievalResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
查询相似向量
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
删除向量
Source§fn delete_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Layer3Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Layer3Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
批量删除(优化版本)
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Layer3Result<Option<VectorItem>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Layer3Result<Option<VectorItem>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
获取向量
Source§fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
统计数量
Source§fn clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
清空存储
Source§fn add_validated<'life0, 'async_trait>(
&'life0 self,
id: String,
vector: Vec<f32>,
metadata: HashMap<String, Value>,
expected_dimension: usize,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_validated<'life0, 'async_trait>(
&'life0 self,
id: String,
vector: Vec<f32>,
metadata: HashMap<String, Value>,
expected_dimension: usize,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
添加向量(带验证) Read more
Source§fn query_with_filter<'life0, 'async_trait>(
&'life0 self,
vector: Vec<f32>,
top_k: usize,
filter: Option<MetadataFilter>,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<RetrievalResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn query_with_filter<'life0, 'async_trait>(
&'life0 self,
vector: Vec<f32>,
top_k: usize,
filter: Option<MetadataFilter>,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<RetrievalResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
带过滤条件的查询
Source§fn query_with_threshold<'life0, 'async_trait>(
&'life0 self,
vector: Vec<f32>,
top_k: usize,
min_score: f32,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<RetrievalResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn query_with_threshold<'life0, 'async_trait>(
&'life0 self,
vector: Vec<f32>,
top_k: usize,
min_score: f32,
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<RetrievalResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
带分数阈值的查询 Read more
Source§fn delete_by_filter<'life0, 'async_trait>(
&'life0 self,
filter: MetadataFilter,
) -> Pin<Box<dyn Future<Output = Layer3Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_by_filter<'life0, 'async_trait>(
&'life0 self,
filter: MetadataFilter,
) -> Pin<Box<dyn Future<Output = Layer3Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
删除所有匹配元数据条件的向量
Source§fn get_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<Option<VectorItem>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Layer3Result<Vec<Option<VectorItem>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
批量获取向量
Source§fn upsert<'life0, 'async_trait>(
&'life0 self,
id: String,
vector: Vec<f32>,
metadata: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn upsert<'life0, 'async_trait>(
&'life0 self,
id: String,
vector: Vec<f32>,
metadata: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
更新向量(存在则更新,不存在则创建)
Source§fn exists<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn exists<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Layer3Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
检查向量是否存在
Source§fn stats<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<VectorStoreStats>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stats<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<VectorStoreStats>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
获取存储统计信息
Source§fn persist<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn persist<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
持久化到磁盘(可选)
Source§fn load<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
从磁盘加载(可选)
Source§fn persist_async<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn persist_async<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Layer3Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
异步持久化(后台线程)
Source§fn persist_sync(&self) -> Layer3Result<()>
fn persist_sync(&self) -> Layer3Result<()>
强制同步持久化
Source§fn validate_dimension(
&self,
vector: &[f32],
expected: usize,
) -> Layer3Result<()>
fn validate_dimension( &self, vector: &[f32], expected: usize, ) -> Layer3Result<()>
验证向量维度
Auto Trait Implementations§
impl !RefUnwindSafe for ChromaVectorStore
impl !UnwindSafe for ChromaVectorStore
impl Freeze for ChromaVectorStore
impl Send for ChromaVectorStore
impl Sync for ChromaVectorStore
impl Unpin for ChromaVectorStore
impl UnsafeUnpin for ChromaVectorStore
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