请教一个关于创建完Tag,然后立马通过match语句根据其他存量Tag查询V,报E_TAG_NOT_FOUND问题

提问参考模版:

  • nebula 版本:(为节省回复者核对版本信息的时间,首次发帖的版本信息记得以截图形式展示)
    2.5.1
  • 部署方式:分布式
  • 安装方式:源码编译
  • 是否为线上版本:Y
  • 硬件信息
    • 磁盘( hhd)
    • CPU、内存信息:未知,无关
  • 问题的具体描述
  1. 当我创建很多tag, 比如先创建很多tag1, tag2, tag3,然后里面使用match (v:tag) return v;语句进行查询。概率会出现如下错误:(tag是已经存在的Tag,并且该tag有很多点已经存在)
    Storage Error: Tag not Found
  2. 这里有疑问是,创建与后续无关查询的tag,也会影响后续的查询逻辑么?
  3. 我根据源码,检索到:getAllVerTagSchema这个返回的数据有误,导致Tag not Found错误。
  4. 如果对于此类场景,有特殊限制,因为我看getAllVerTagSchema这个方法取的也是缓存里面的数据(是否在创建Tag的schema的时候,会影响缓存数据,从而导致后续match失败)
  5. 我们在生产环境,是否有这种限制(就是在做meta数据,比如Tag的创建,需要等待心跳时间,才可以进行检索数据)

MATCH 的使用前提是 tag 创建了索引,你先确认下这个 tag 是否有索引;

这个没明白,你是说会影响创建 tag 的同时进行查询?会不会印象性能?还是你想问我们的查询过滤条件具体是如何执行的?

这里还是指的 match (v:tag) return v; 这个语句吗?除了 MATCH 执行需要索引之外,tag 创建之后你要读取的话也许要 1-2 个心跳,一般是 10-20s;

这个我上面回复啦,是需要等待 1-2 个心跳的;

其实我可能没有描述的特别清楚,因为match (v:tag) return v这个使用的tag是已经很早创建好的,而非本次创建好的

所以我让你确认这个 tag 创建过索引没啊。和你多久之前创建的 tag 没关系啊

有索引的

再确认下,你是创建索引再导入数据还是先导入数据再创建的索引呢?你的问题 4 我在喊研发同学回复哈,稍等。

已经确认过了,是先建立索引,然后插入点数据,然后新建一些tag,立马根据已经存在的tag match 顶点