创建索引提示"Unknown code -54"

为了更快地定位、解决问题,麻烦参考下面模版提问 ^ ^

提问参考模版:

  • nebula 版本:1.2.0
  • 部署方式:分布式 *3
  • 硬件信息
    • 磁盘 SSD
    • CPU、内存信息: 40 core ,192GB
  • 执行问题: CREATE TAG INDEX cid_index on Cid(cid);
  • 问题的具体描述
    在执行 “CREATE TAG INDEX cid_index on Cid(cid)” 为Tag创建索引时,提示"Unknown code -54"错误,
    在该Space 上已成功创建4个Tag Index,但在创建第5个时,继续创建索引,都提示"Unknown code -54"错误。
    经排查发现,出现错误的Tag设置了ttl,但索引字段并不是ttl字段,请问设置了ttl的Tag无法添加索引么

很抱歉,
问题一:错误信息不明确。这个我们尽快改掉。
问题二:假如tag或者edge设置过ttl,那么整个tag或者edge是不允许添加索引的,和添加的索引列是不是ttl没有关心,之所以不这样支持,是怕ttl过期数据删除了,但是索引数据还在,这个还没做统一处理,所以就不允许这样设置。
还有,我们的文档需要做修改
@Amber 修改下
https://docs.nebula-graph.com.cn/manual-CN/2.query-language/4.statement-syntax/1.data-definition-statements/TTL/ 里面的

注意一个 tag 或 edge 不能同时拥有 TTL 和索引,只能二者择其一,即使 ttl_col 配置的字段与要创建索引的字段不同。

后半句是错的

2 个赞

这里没有问题,文档里的例子已经说明清楚了:

nebula> CREATE TAG t1(a int, b int, c string) ttl_duration = 100, ttl_col = "a";
nebula> CREATE TAG INDEX id1 ON t1(a); -- failed
nebula> CREATE TAG t1(a int, b int, c string) ttl_duration = 100, ttl_col = "a";
nebula> CREATE TAG INDEX id1 ON t1(b); -- failed

注意一个 tag 或 edge 不能同时拥有 TTL 和索引,只能二者择其一,即使 ttl_col 配置的字段与要创建索引的字段不同。

1 个赞