NebulaGraph执行MATCH语句报错-1005,请求修正查询语句
解决NebulaGraph master分支查询报错-1005的问题
报错原因
报错 -1005:Scan vertices or edges need to specify a limit number, or limit number can not push down 是因为当前master分支的NebulaGraph对无起始点的全图扫描类查询,要求必须将LIMIT条件下推到顶点/边的扫描阶段,避免无限制全图扫描占用资源。原语句中LIMIT放在RETURN之后,引擎无法将该限制下推到扫描环节,因此触发错误。
修正后的查询语句
可以通过将LIMIT提前到WITH子句,让引擎在扫描阶段就应用数量限制:
MATCH (m)-[:follow]->() WITH m LIMIT 10 RETURN m
或者优化为先限制扫描的顶点数量,再匹配边关系,执行效率更高:
MATCH (m) WITH m LIMIT 10 MATCH (m)-[:follow]->() RETURN m
验证说明
上述两种写法都能让LIMIT条件被下推到扫描阶段,满足引擎的执行要求,同时达到原语句想要返回最多10个存在follow出边的顶点的效果。
内容的提问来源于stack exchange,提问作者Lisa Liu
相关产品推荐
相关产品推荐

