pub struct QdrantVectorStore { /* private fields */ }Expand description
Qdrant 向量存储
使用 Qdrant 云服务或自托管实例进行向量存储和检索。
Implementations§
Source§impl QdrantVectorStore
impl QdrantVectorStore
pub fn new(config: RemoteVectorStoreConfig) -> Layer3Result<Self>
Trait Implementations§
Source§impl VectorStore for QdrantVectorStore
impl VectorStore for QdrantVectorStore
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 QdrantVectorStore
impl !UnwindSafe for QdrantVectorStore
impl Freeze for QdrantVectorStore
impl Send for QdrantVectorStore
impl Sync for QdrantVectorStore
impl Unpin for QdrantVectorStore
impl UnsafeUnpin for QdrantVectorStore
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