Redis 向量搜索
Redis 向量搜索是一个高度可扩展的解决方案,它可以用于实现实时的、基于内容的推荐系统,或者在任意数据集上进行高效的相似性搜索。Redis 从版本 6.2 开始提供了一个名为 RedisSearch 的模块,它提供了全文搜索和特定字段搜索的功能。
以下是一个简单的例子,展示如何在 Redis 上设置一个简单的向量搜索索引,并添加一些向量数据:
from redis import Redis
from redis_search import Document, TextField, NumericField, Search
# 连接到 Redis
redis_conn = Redis(host='localhost', port=6379)
# 创建一个新的搜索索引
Search(redis_conn).create_index((TextField('title'), NumericField('price')))
# 添加文档到索引
document1 = Document('doc1')
document1.add_text('title', 'Redis Search')
document1.add_numeric('price', 100)
document1.vector_field('vector', [0.1, 0.2, 0.3])
document1.save()
document2 = Document('doc2')
document2.add_text('title', 'Redis Cluster')
document2.add_numeric('price', 200)
document2.vector_field('vector', [0.4, 0.5, 0.6])
document2.save()
# 执行向量搜索
results = Search(redis_conn).vector_search(
field='vector',
query_vector=[0.1, 0.1, 0.1],
topk=10
)
for result in results:
print(result.id, result.score)
在这个例子中,我们首先创建了一个包含文本字段 title
和数值字段 price
的索引。然后,我们添加了两个文档,每个文档都有一个与之关联的向量。最后,我们执行了一个向量搜索,查询与一个给定向量相似的文档。
请注意,这只是一个简单的示例,实际使用时需要考虑更多的配置选项和性能优化。
评论已关闭