document_stores.implementations.base_vector_store

统一向量存储接口基类

该模块定义了向量存储系统的抽象基类,提供统一的接口规范, 支持FAISS、Milvus等不同的向量存储后端的无缝切换。

Classes

BaseVectorStore(config)

向量存储的抽象基类。

Exceptions

VectorStoreConfigError

向量存储配置异常

VectorStoreConnectionError

向量存储连接异常

VectorStoreError

向量存储相关异常类

VectorStoreOperationError

向量存储操作异常

class document_stores.implementations.base_vector_store.BaseVectorStore(config)[source]

Bases: ABC

向量存储的抽象基类。

定义了所有向量存储后端必须实现的核心接口,确保不同存储引擎 之间的一致性和可互换性。

__init__(config)[source]

初始化向量存储基类。

Parameters:

config (Dict[str, Any]) – 存储配置字典

abstractmethod initialize()[source]

初始化向量存储后端。

Returns:

初始化成功返回True,失败返回False

Return type:

bool

abstractmethod add_documents(documents, embeddings=None)[source]

批量添加文档到向量存储。

Parameters:
  • documents (List[Document]) – Haystack文档列表

  • embeddings (List[List[float]] | None) – 对应的向量嵌入列表,可选

Returns:

添加成功返回True,失败返回False

Return type:

bool

abstractmethod search(query_embedding, top_k=5, filters=None)[source]

向量相似度搜索。

Parameters:
  • query_embedding (List[float]) – 查询向量

  • top_k (int) – 返回的最相似文档数量

  • filters (Dict[str, Any] | None) – 元数据过滤条件,可选

Returns:

包含(文档, 相似度得分)的元组列表

Return type:

List[Tuple[Document, float]]

abstractmethod get_document_by_id(doc_id)[source]

根据文档ID获取文档。

Parameters:

doc_id (str) – 文档ID

Returns:

文档对象,不存在则返回None

Return type:

Document | None

abstractmethod update_document(doc_id, document, embedding=None)[source]

更新文档。

Parameters:
  • doc_id (str) – 文档ID

  • document (Document) – 新的文档对象

  • embedding (List[float] | None) – 新的向量嵌入,可选

Returns:

更新成功返回True,失败返回False

Return type:

bool

abstractmethod delete_document(doc_id)[source]

删除文档。

Parameters:

doc_id (str) – 文档ID

Returns:

删除成功返回True,失败返回False

Return type:

bool

abstractmethod delete_all_documents()[source]

删除所有文档。

Returns:

删除成功返回True,失败返回False

Return type:

bool

abstractmethod get_document_count()[source]

获取文档总数。

Returns:

文档总数

Return type:

int

abstractmethod save_index(path)[source]

保存索引到文件。

Parameters:

path (str) – 保存路径

Returns:

保存成功返回True,失败返回False

Return type:

bool

abstractmethod load_index(path)[source]

从文件加载索引。

Parameters:

path (str) – 索引文件路径

Returns:

加载成功返回True,失败返回False

Return type:

bool

get_storage_info()[source]

获取存储信息。

Returns:

包含存储类型、配置等信息的字典

Return type:

Dict[str, Any]

validate_embedding(embedding)[source]

验证向量嵌入的有效性。

Parameters:

embedding (List[float]) – 向量嵌入

Returns:

有效返回True,无效返回False

Return type:

bool

get_supported_similarity_functions()[source]

获取支持的相似度函数列表。

Returns:

相似度函数名称列表

Return type:

List[str]

close()[source]

关闭存储连接,清理资源。

子类可以重写此方法以实现特定的资源清理逻辑。

exception document_stores.implementations.base_vector_store.VectorStoreError[source]

Bases: Exception

向量存储相关异常类

exception document_stores.implementations.base_vector_store.VectorStoreConnectionError[source]

Bases: VectorStoreError

向量存储连接异常

exception document_stores.implementations.base_vector_store.VectorStoreOperationError[source]

Bases: VectorStoreError

向量存储操作异常

exception document_stores.implementations.base_vector_store.VectorStoreConfigError[source]

Bases: VectorStoreError

向量存储配置异常