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;
我怎么知道返回的实体对应那条边? 谢谢
steam
2021 年8 月 2 日 08:25
2
不太一样,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之后有优化性能的计划么,大概多久,谢谢
system
关闭
2021 年9 月 17 日 10:20
10
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。