能否实现 在满足where条件下取样sample ?

需求是使用go语句 加 where条件 筛选出一批结果点
但是热点问题比较严重,于是想通过limit 或者 sample 来减少结果数,提升效率,我写的两个语句如下:
GO FROM “123” OVER e_p where properties(edge).create_time < 1688832000 yield dst(edge) as dataid SAMPLE [100];

GO FROM “123” OVER e_p where properties(edge).create_time < 1688832000 yield dst(edge) as dataid | limit 100;

分析了一下结果 看了下执行计划
1,sample是随机选取100个 e_p 边,然后执行where条件,如果这100个边都不符合where条件,最终结果就是空,即使符合where条件的数据也有很多。
2,limit是 从“123” 遍历了所有边,过滤符合where条件的数据,最后再取100个结果,这样的问题是,如果123是个热点数据,第一步遍历的rows会很多,ngql执行比较慢,这也是最初问题发现的原因。

我希望得到的效果是,从“123” 遍历边,在满足where的情况下,只需要拿到100个结果即可,我既不希望结果少于100,也不希望遍历所有边导致有些热点数据执行特别慢

sample是否有其他用法?或者存在什么其他关键字能实现这个效果?
或者退一步有什么其他的思路来解决我的问题也好

nebula 版本:3.2.1

不太确定3.2.1,3.6里go的limit是做了下推的。

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。