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

Laravel中创建Redis HNSW向量索引报错:Bad arguments for algorithm HNSW:768

问题原因与解决方法

你遇到的错误是因为创建HNSW向量字段时,算法配置参数的格式不正确。Redis的FT.CREATE命令要求HNSW的参数按参数名+参数值的顺序传递,而你使用了关联数组,导致客户端生成了Redis无法解析的命令格式。

修正后的代码

将VectorField的第三个参数从关联数组改为扁平化的索引数组:

$schema = [
    new NumericField('doc_id'),
    new NumericField('entity_id'),
    new VectorField('embedding', 'HNSW', ['DIM', 768, 'DISTANCE_METRIC', 'COSINE']),
    new TagField('users'),
    new TagField('url'),
];
return Redis::ftCreate('testVector', $schema, []);

补充说明

  • Redis的RediSearch模块要求HNSW算法的参数以DIM <维度值> DISTANCE_METRIC <度量方式>的格式传入,Laravel的Redis客户端会直接将你传入的数组展开为命令参数,因此必须使用索引数组严格匹配参数顺序。
  • 确保你的Redis服务器已安装Redis Stack(包含RediSearch模块),且版本不低于2.0,因为HNSW是该版本后才支持的向量索引算法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:16:06