删除tag再添加是否会降低查询速度

在我们的使用场景中我们需要首先给数据打上大量标签,同时需要在一定期限(比如一周)后重新对数据进行计算再次根据新的数据进行打标,在我们的查询中,我们的查询语句如下:

lookup on yield id(vertex) as id | go from $-.id over 关联标签 where properties($$).标签名称 == “男人” yield id($^) as id | limit 0,10;

在图中具体关系为: (人)-[关联标签]->(标签),其中上述语句为查询标签为男人的人

在我们的具体操作中,开始时使用index直接对标签名称进行index,查询速度在零点几秒,不进行index时间在40秒以上。

但是在我们的更新中,我们直接删除标签tag,然后再次写入标签以及关系,请问该种方式是正确 的吗?在删除标签后我们并未手动compaction,再次使用打标语句重新计算男人的标签并写入数据库,在这种方式下我们的查询速度达到50秒,即使index时间并未下降。

请问查询速度慢是什么原因造成的?是因为我们删除时只删除tag的做法是错误的吗?还是再次写入后index未生效?

看上去原来的关系并没有删除啊,这样边可能会越来越多?你的“标签”这个tag的VID是啥?

vid是标签名称的hash,我会提前判断标签名称不同,那应该将边也删除吗?

1.可以尝试下,非业务高峰期,比如凌晨进行删除和重新构建的操作;
2.或者可以尝试新建图空间信息数据的导入,原始的图空间闲时在做删除和compact操作来释放一些资源
3. 再或者把标签查询逻辑上移到其它大数据组件进行查询种子的过滤操作

最好删除边,如果每次的标签名称不全相同的话,会有悬挂边,影响性能,而且老的边还在可能正确性也会有问题吧