数据类型能否可以支持array

  • nebula 版本:3.*
  • 部署方式:分布式
  • 安装方式:源码编译
  • 是否上生产环境:Y
    当前的属性仅支持基本类型long、string,来构建索引
    是否可以支持多值呢:long[]、string[],同时可以构建索引

当前不支持,已规划
暂时需要通过string来进行变化。或者也可以考虑用多边来进行

请问具体的场景是什么呢?为什么需要 array 类型还需要索引呢?

比如血缘边(表->表),记录依赖的作业信息(多个作业可能对相同的血缘边)

这种情况你其实用多条边就可以解决了

我的场景一般是在点上。点上有一个属性,例如一个颜色的枚举:1蓝色,2红色。这个tag可以同时有1和2两个值。然后在做tag筛选的时候,需要找颜色=1的。这就需要tag在构建索引的时候可以存两个值,可以在where条件做筛选。

1 个赞

如果是枚举的话,是不是可以考虑用bitmap来实现。

code少的,是可以的。
但是如果很长的,就比较麻烦。
比如国家、城市code,商品类型code。
这种code如果是long类型数值也会较大,也有可能是字符串类型。
例如:一个tag有售卖城市的属性,那这个值就会是多值的,比如值是:【北京, 上海, 广州, 深圳】。筛选的时候筛选这四个城市的任意一个,都可以检索出来这个tag。

如果是这样的话,倒有个建议,把城市做为一个新的tag,然后建立商品到这个城市的边。
比如某商品有售卖的城市有【北京, 上海, 广州, 深圳】,那就可以建4条边到4个城市。
不过这里要注意的是,查询的时候最好是单向的从商品找到城市,尽量不要从城市反向查商品,否则这几个点都是超级节点,可能会导致数据量比较大。当然,如果只是一跳,比如找某个城市售卖的商品,这种查询我觉得可能比用索引还来得快。

1 个赞