Documentation
¶
Overview ¶
Package redis 提供 Redis Stack (RediSearch) 向量存储集成
Redis Stack 通过 RediSearch 模块提供向量搜索能力, 适合需要低延迟、高吞吐量的实时向量检索场景。
特性:
- 亚毫秒级查询延迟
- 支持 FLAT 和 HNSW 索引
- 混合查询(向量 + 属性过滤)
- 实时索引更新
- 内存优先,可持久化
前置条件:
- Redis Stack 7.0+ (redis/redis-stack Docker 镜像)
- 或 Redis 7.0+ 带 RediSearch 模块
使用示例:
store, err := redis.NewStore(ctx,
redis.WithAddr("localhost:6379"),
redis.WithIndex("doc_index"),
redis.WithDimension(1536),
)
defer store.Close()
// 添加文档
store.Add(ctx, docs)
// 搜索
results, err := store.Search(ctx, queryEmbedding, 5)
Index ¶
- type DistanceMetric
- type IndexAlgorithm
- type Option
- func WithAddr(addr string) Option
- func WithAlgorithm(algo IndexAlgorithm) Option
- func WithClient(client *goredis.Client) Option
- func WithDimension(dim int) Option
- func WithDistance(d DistanceMetric) Option
- func WithIndex(index string) Option
- func WithPassword(password string) Option
- func WithPrefix(prefix string) Option
- type Store
- func (s *Store) Add(ctx context.Context, docs []vector.Document) error
- func (s *Store) Clear(ctx context.Context) error
- func (s *Store) Close() error
- func (s *Store) Count(ctx context.Context) (int, error)
- func (s *Store) Delete(ctx context.Context, ids []string) error
- func (s *Store) Search(ctx context.Context, embedding []float32, topK int, filter map[string]any) ([]vector.Document, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DistanceMetric ¶
type DistanceMetric string
DistanceMetric 距离度量
const ( // DistanceCosine 余弦距离 DistanceCosine DistanceMetric = "COSINE" // DistanceL2 L2 距离 DistanceL2 DistanceMetric = "L2" // DistanceIP 内积距离 DistanceIP DistanceMetric = "IP" )
type IndexAlgorithm ¶
type IndexAlgorithm string
IndexAlgorithm 索引算法
const ( // AlgorithmFlat 暴力搜索(精确) AlgorithmFlat IndexAlgorithm = "FLAT" // AlgorithmHNSW HNSW 索引(近似,推荐) AlgorithmHNSW IndexAlgorithm = "HNSW" )
Click to show internal directories.
Click to hide internal directories.