爆肝整理,请不要吝啬你的赞和收藏。
目录
1. 前言
Redis 本身并不是一个专门的向量数据库,但通过加载 RediSearch 或 RedisAI 模块,可以将 Redis 用作向量数据库,支持向量存储和相似性搜索。
这篇文章将介绍基于 RedisSearch 的Redis向量库实现。通过阅读本篇文章,你将学习到如何创建向量索引,如何存储和更新向量,如何进行向量搜索,如何使用阿里百炼 Embedding Model 文本向量化,如何集成到 SpringBoot 中并实现向量的存储和搜索等。
2. 前提条件
- 已安装 Redis Stack ,如何安装请参考 docker compose 安装 Redis Stack 。
接下来,我们将以如何创建 Redis 向量索引开始。
3. 创建向量索引
Redis 在你的数据上维护一个二级索引,这个索引有一个定义好的模式(包括向量字段和元数据)。Redis 支持 FLAT 和 HNSW 向量索引类型。
通过
FT.CREATE 创建索引,指定向量字段的类型和距离度量方式。
3.1 基础语法
FT.CREATE <index_name>
ON <storage_type>
PREFIX 1 <key_prefix>
SCHEMA ... <field_name> VECTOR <algorithm> <index_attribute_count> <index_attribute_name1> <index_attribute_value1>
[<index_attribute_name2> <index_attribute_value2> ...]
3.2 参数解析
- <index_name>