nebula 支持go或者fetch进行路径查询么

  • nebula 版本:2.0.1
  • 部署方式 单机:
  • 是否为线上版本:N
  • 硬件信息
    • 磁盘 300GSSD
    • CPU、内存信息 10核50G
  • 问题的具体描述
    使用 go 和fetch 语句,查询单跳,但是单跳返回多个目标实体的属性值,每个目标实体的属性值并不知道属于那种关系的。这种情况下 nebula支持go语句的路径查询么?
    通过match语句返回路径我可以知道目标实体属性值与原实体的关系类型,但是在go语句并不清楚。
go from "0001" over Edge1 where Edge1._rank == 100 or Edge1._rank == 200 \
    yield Edge1._dst as id | \ 
    fetch prop on Entity $-.id;

我怎么知道返回的实体对应那条边? 谢谢

路径的话,你可以看下 FIND PATH 语法:FIND PATH - Nebula Graph Database 手册

不太一样,find应该很花时间吧? 具体业务: 比如 查 张三的老婆、孩子、家人 通过 go … | fetch … 返回很多实体 但是我们不知道这些实体哪个是老婆 哪个是家人

类似于 GO FROM “401000873” OVER edge_all where edge_all._rank == 20 YIELD edge_all._rank AS rank, edge_all._dst AS id | fetch prop on entity_all $-.id yield $-.rank, entity_all.a1; 希望返回的属性值a1也知道边类型rank,但会报错。 谢谢

fetch 不支持 yield $-,只能 yield fetch 查询的结果,你的诉求可以用 match。

match (v1) - [e:edge_all] -> (v2) where id(v1) == "401000873" and rank(e) == 20 return rank(e) as rank, v1.a1 as a1
1 个赞

match 的话考虑了,但是线上使用的话查询效率比go要低不少,这一点比较头疼

查多次?

请问针对这个场景go后续有新计划么,或者match之后有优化性能的计划么,大概多久,谢谢

match 优化已经在排期了。

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