You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis向量搜索加载向量后索引大小为0问题求助

Redis向量搜索索引num_docs为0的排查与修复

核心问题排查与修复步骤

1. 统一Redis连接对象

你的代码中创建索引用的是redis_conn,但加载数据用的是client,如果这两个不是同一个Redis连接实例(比如连接了不同的数据库、host/port),会导致数据没写入到索引监控的库中。直接将加载数据的代码替换为使用redis_conn:

for key in V.keys():
    np_vector = np.array(V[key], dtype=np.float32)  # 强制指定为FLOAT32类型
    redis_key = "X:" + key
    redis_conn.hset(redis_key, mapping={"vector": np_vector.tobytes()})

2. 验证向量格式匹配

确保向量的类型和维度完全符合索引定义:

  • 确认dim变量的值与np_vector.shape[0]严格一致
  • 必须将向量转换为FLOAT32类型,避免默认数据类型与索引定义不匹配

3. 手动重建索引(若数据先于索引存在)

如果在创建索引之前,Redis中已经存在X:前缀的键,需要手动触发索引重建:

# 执行索引重建命令
redis_conn.execute_command('FT.REINDEX', 'w2v')

4. 检查索引配置

查看索引的实际配置,确认前缀和类型正确:

index_info = redis_conn.ft('w2v').info()
print("索引前缀:", index_info['prefixes'])
print("索引类型:", index_info['index_type'])

完成上述步骤后,重新查询索引大小:

print("Index size: ", redis_conn.ft('w2v').info()['num_docs'])

内容的提问来源于stack exchange,提问作者amitj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:05:16