如何在NebulaGraph中不指定类型/标签获取所有顶点与边?
NebulaGraph 无标签/类型遍历所有顶点与边的解决方法
无标签获取所有顶点
你执行MATCH (v) RETURN v报错,是因为NebulaGraph为避免全量扫描占用过多资源,强制要求全量遍历顶点/边时必须指定LIMIT。解决方法有两种:
- 使用带LIMIT的MATCH语句(推荐):
把MATCH (v) RETURN v LIMIT 1000;1000替换成你需要的数量,也可以设一个足够大的数值覆盖所有顶点(注意不要超过集群承载能力)。 - 使用GO语句配合FETCH:
GO FROM * OVER * WHERE $-.src IS NOT NULL FETCH PROP ON * $-.src AS v;
无类型获取所有边
同样需要通过LIMIT限制返回量,两种实现方式:
- MATCH语句写法:
MATCH ()-[e]->() RETURN e LIMIT 1000; - GO语句写法:
GO FROM * OVER * RETURN edge AS e LIMIT 1000;
补充说明
报错提示的核心原因是NebulaGraph默认禁止无限制的全量扫描操作,防止大规模图查询拖垮集群性能,因此必须通过LIMIT明确控制返回的数据规模。
内容的提问来源于stack exchange,提问作者黄凤仙
相关产品推荐
相关产品推荐

