nebula graph 1.2.0 组合索引左匹配也会报错

  • nebula 版本:v1.2.0
  • nebula studio 版本:v1.2.4-beta
  • 部署方式:Docker
  • 硬件信息
    • 磁盘:SSD
    • CPU、内存信息:24核心48线程 384GB
  • 出问题的 Space 的创建方式:
    ID Name Partition number Replica Factor Charset Collate
    157 ograph_v1 15 3 utf8 utf8_bin
  • 问题的具体描述:
    CREATE TAG INDEX idx_Thing_name_prior_source on Thing(Thing_name, Thing_prior);
    其中Thing_name是string,Thing_prior是bool,rebuild 索引成功以后,
    在studio的控制台运行:LOOKUP ON Thing WHERE Thing.Thing_name == "周杰伦" and Thing.Thing_prior == true; 成功。
    但是运行:LOOKUP ON Thing WHERE Thing.Thing_name == "周杰伦"; 报错.
    报错信息为:
    { "code": -1, "data": null, "message": "Unknown error(411): " }

该问题必现,感觉索引要和条件完全匹配才行,不管是否为左匹配,多了和少了,LOOKUP都会报错。

1 个赞

1.x的索引如果where里面有string必须完全匹配 2.x没有这个限制

如果是1。0的话建议参考1.0的文档
https://docs.nebula-graph.com.cn/manual-CN/2.query-language/4.statement-syntax/1.data-definition-statements/#_2

不对呀,官方文档也是支持左匹配的呀。

如楼上 @critical27 所讲,里有一个根本的原因,就是如果索引中带有string类型的field,where条件中必须包含所有索引的field,如果索引中不存在string 类型的field,则没有这个限制。
另外,2.0中支持了定长字符串的数据类型,所以也没有这个限制。

在这个帖子中也提到了:

@Amber ,文档需要改下吗?

1 个赞


这两个是当索引中的属性都不是string类型才有效是吗?

有文档

这里文档已更新噢~感谢

1 个赞