lookup on语句支持分页查询吗

提问参考模版:

  • nebula 版本: 2.5.0
  • 部署方式:单机
  • 安装方式:RPM
  • 是否为线上版本:Y

使用lookup on 获取所有实体点
LOOKUP ON department YIELD department.department_name AS name
请问支持分页查询吗,还是一次性查出来,交由前端分页,这样数据量太大会不会有问题?

如果是nebula最新版,可以试试where子句。例如,LOOKUP ON department WHERE department.department_name > yyy AND department.department_name < zzz YIELD department.department_name AS name。其中,[yyy, zzz] 代表department_name这个属性值的一个范围。如果是2.5.0,需要找一个非字符串的属性进行过滤

1 个赞

后面加个limit不可以吗,indexscan和limit节点有个合并下推的优化规则。

可以使用类似这样的语法:LOOKUP ON department YIELD department.department_name AS name | LIMIT 10

嗯嗯好的,有offset吗

是要这样的效果吗? LOOKUP xxxx | LIMIT 10,20
这样也是支持的。

这里有limit的详细使用介绍 :grinning:LIMIT and SKIP - Nebula Graph Database 手册

好的呢,但是如果要做到分页,似乎还需要知道总数count,这样该怎么办呢

可以写个脚本循环判断一下。例如,
LOOKUP ON department YIELD department.department_name AS name | LIMIT 0, 1000
(判断一下结果是否为空,不为空,则继续)
LOOKUP ON department YIELD department.department_name AS name | LIMIT 1000, 1999

直到结果集为空。

1 个赞

好的感谢,我直接通过 show stats 拿到总数量了。这样就可以做某一个tag的分页啦 多谢~~~

2 个赞

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