1

我可以做一个查询来实现顶点和他的所有边(包括其他顶点)吗?

现在我正在做多个查询来实现它:

获取顶点:

select from V where entity_name = 'SomeEntity'

然后遍历每个边缘并选择它:

select from #EDGE@rid // Multiple in the number of edges for this node

最后越过边缘并获取所有其他顶点(原始顶点除外)

select from #VERTEX@rid // Multiple in the number of vertexes in the edges
4

3 回答 3

0

我使用以下方法从我的顶点获取所需深度的所有顶点和边:

TRAVERSE inE(), outE(), inV(), outV() 
FROM (select from V where entity_name = 'SomeEntity') 
WHILE $depth <= 2
于 2016-04-24T11:39:10.960 回答
0

观察;如果结构是一棵树,多尔科恩的答案就有效。但是,如果是循环图,由于不访问已访问节点的节点访问策略,最长路径上的最后一条边会丢失。对我有用的解决方案如下:

从 #22:1 遍历 out(), outE() 而 $depth <= 4

查询遍历所有节点,被认为是逐渐离开顶点,然后是逐渐离开所有顶点的边。

输出如下所示:

在此处输入图像描述

图的结构:

在此处输入图像描述

另一方面,如果使用上述查询样式(尽管我不是在顶点或边中寻找),则输出为:

在此处输入图像描述

从 #22:4 到 #23:1 的边缘被遗漏(作为记录),因为它落在更长的路径上。遗漏边缘的参考(#28:2)在上述两个记录中都可用。

于 2021-11-29T09:40:10.887 回答
0
SELECT *,in(),out() FROM V WHERE entity_name = 'SomeEntity'
于 2016-04-24T10:19:15.900 回答