NebulaGraph 索引创建指南:为何你的 CREATE EDGE INDEX 总报 “Invalid param!”?
我们发现为dependsOnPreTask这个edge_type创建索引时,总是报Invalid param,无论是单属性还是多属性。DeepSeek、豆包等大模型,耗费半天时间,始终给不出正确的解决办法。上述示例为针对edge_type创建index发现Invalid param,同样为tag创建index也是同样的道理。就是定长索引,它只会对字符串的前30个字符建立索引。
DeepSeek、豆包等大模型,耗费半天时间,始终给不出正确的解决办法!!!
一、报错日志
CREATE EDGE INDEX test_idx ON dependsOnPreTask(start_date,dead_line,status)
[ERROR (-1005)]: Invalid param!
我们发现为dependsOnPreTask这个edge_type创建索引时,总是报Invalid param,无论是单属性还是多属性。
二、解决方法
CREATE EDGE INDEX IF NOT EXISTS idx_dep_task ON dependsOnPreTask (start_date(30), dead_line(30), status(40))
三、问题根源
字符串属性的索引长度限制
在 NebulaGraph 中,当您为 string 类型的属性创建索引时,必须指定索引长度。语法为 property_name(length)。
-
定长索引:您使用的 start_date
(30)就是定长索引,它只会对字符串的前30个字符建立索引。 -
最大长度:NebulaGraph 支持的索引最大长度为 256
四、创建tag/edge index其他语法规定

五、tag创建index
上述示例为针对edge_type创建index发现Invalid param,同样为tag创建index也是同样的道理
CREATE TAG INDEX IF NOT EXISTS player_index_0 on player(name(10))
注意:如果索引是在数据插入之后才创建的,那么你需要重建索引使其生效
REBUILD EDGE INDEX idx_dep_task
这个操作是异步的,你可以通过 SHOW JOBS; 来查看重建任务是否完成
更多推荐

所有评论(0)