ClickHouse 是一个用于实时应用和分析的开源数据库,具有完整的 SQL 支持。ClickHouse 支持精确向量搜索(例如,使用 L2Distance 等距离函数)和使用向量相似性索引的近似向量搜索(在 ClickHouse 25.8+ 中可用)。详情请参阅精确和近似向量搜索。
本页展示如何使用与 ClickHouse 向量存储相关的功能。
设置
首先使用 docker 设置一个本地 clickhouse 服务器:langchain-community 和 clickhouse-connect 才能使用此集成。
凭证
此笔记本无需凭证,只需确保你已按上述方式安装了相关包。 如果你想获得一流的模型调用自动追踪,也可以通过取消注释以下内容来设置你的 LangSmith API 密钥:实例化
管理向量存储
创建向量存储后,我们可以通过添加和删除不同项目与之交互。向向量存储添加项目
我们可以使用add_documents 函数向向量存储添加项目。
从向量存储删除项目
我们可以使用delete 函数按 ID 从向量存储中删除项目。
查询向量存储
创建向量存储并添加相关文档后,你很可能希望在链或代理运行期间对其进行查询。直接查询
相似性搜索
执行简单的相似性搜索可以按如下方式进行:带分数的相似性搜索
你也可以带分数进行搜索:过滤
你可以直接访问 ClickHouse SQL where 语句。你可以按照标准 SQL 编写WHERE 子句。
注意:请注意 SQL 注入,此接口不得由最终用户直接调用。
如果你在设置中自定义了 column_map,你可以使用如下过滤器进行搜索:
其他搜索方法
本笔记本未涵盖多种其他搜索方法,例如 MMR 搜索或按向量搜索。通过转换为检索器进行查询
你也可以将向量存储转换为检索器,以便在你的链中更轻松地使用。 以下是将向量存储转换为检索器,然后使用简单查询和过滤器调用检索器的方法。用于检索增强生成
有关如何将此向量存储用于检索增强生成 (RAG) 的指南,请参阅以下部分: 更多内容,请查看使用 Astra DB 的完整 RAG 模板。将这些文档通过 MCP 连接到 Claude、VSCode 等,以获取实时答案。

