兼容性:仅适用于 Node.js。
RedisVectorStore 功能和配置的详细文档,请参阅 API 参考。概览
集成详情
设置
要使用 Redis 向量存储,您需要设置一个 Redis 实例并安装@langchain/redis 集成包。您还可以安装 node-redis 包以使用特定的客户端实例初始化向量存储。 本指南还将使用 OpenAI 嵌入,这需要您安装 @langchain/openai 集成包。如果需要,您还可以使用 其他支持的嵌入模型。凭据
设置实例后,设置REDIS_URL 环境变量
实例化
管理向量存储
向向量存储添加项目
查询向量存储
一旦您的向量存储被创建并添加了相关文档,您很可能希望在链或代理运行期间查询它。直接查询
执行简单的相似性搜索可以按如下方式完成通过转换为检索器进行查询
您还可以将向量存储转换为检索器,以便在您的链中更轻松地使用。用于检索增强生成的使用
有关如何将此向量存储用于检索增强生成 (RAG) 的指南,请参阅以下部分删除文档
您可以通过两种方式从向量存储中删除文档删除所有文档
您可以使用以下命令删除整个索引及其所有文档按 ID 删除特定文档
您还可以通过提供文档 ID 来删除特定文档。请注意,配置的键前缀将自动添加到您提供的 ID 中关闭连接
完成后请务必关闭客户端连接,以避免资源过度消耗高级功能
自定义 Schema 和元数据过滤
Redis 向量存储支持元数据字段的自定义模式定义,从而实现更高效的过滤和搜索。此功能允许您为元数据定义特定的字段类型和验证规则。定义自定义 Schema
您可以在创建向量存储时定义自定义模式,以指定字段类型、验证规则和索引选项Schema 字段类型
自定义模式支持三种主要字段类型- TEXT:支持全文搜索的字段,可选词干提取、加权和排序
- TAG:用于精确匹配的分类字段,支持多个值和自定义分隔符
- NUMERIC:支持范围查询和排序的数字字段
字段配置选项
每个字段都可以配置各种选项required:字段是否必须存在于元数据中(默认值:false)SORTABLE:在此字段上启用排序(默认值:undefined)SEPARATOR:对于 TAG 字段,指定多个值的分隔符(默认值:”,”)CASESENSITIVE:对于 TAG 字段,启用区分大小写的匹配(Redis 期望true,而不是布尔值)NOSTEM:对于 TEXT 字段,禁用词干提取(Redis 期望true,而不是布尔值)WEIGHT:对于 TEXT 字段,指定搜索权重(默认值:1.0)
添加带有 Schema 验证的文档
使用自定义模式时,文档会自动根据定义的模式进行验证带元数据过滤的高级相似性搜索
自定义模式通过similaritySearchVectorWithScoreAndMetadata 方法实现强大的元数据过滤功能
数字范围查询选项
对于数字字段,您可以指定各种范围查询错误处理和验证
自定义模式提供自动验证和有用的错误消息性能优势
使用自定义模式提供多项性能优势- 索引元数据字段:单独索引各个元数据字段,实现快速过滤
- 类型优化查询:数字和标签字段使用优化的查询结构
- 减少数据传输:搜索结果中只返回相关字段
- 更好的查询规划:Redis 可以根据字段类型和索引优化查询
向后兼容性
自定义模式功能完全向后兼容。现有没有自定义模式的 Redis 向量存储将继续像以前一样工作。您可以逐步迁移到新索引或重建现有索引时使用自定义模式。API 参考
有关所有RedisVectorSearch 功能和配置的详细文档,请参阅 API 参考。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。