Amazon web services 获取所有相关顶点的最佳gremlin查询

Amazon web services 获取所有相关顶点的最佳gremlin查询,amazon-web-services,gremlin,tinkerpop,tinkerpop3,amazon-neptune,Amazon Web Services,Gremlin,Tinkerpop,Tinkerpop3,Amazon Neptune,我需要得到与起始顶点有任意数量关系的所有顶点。我有一个正在工作的查询,但是在经过几百条边和图形的复杂性之后,它开始显著减慢。有没有更有效的方法获取相关顶点 g.V(id) .emit() .repeat(both()) .until(cyclicPath()) .unfold() .dedup() .toList() 性能崩溃的一个例子是一个有202个顶点,259条边的子图。在运行一个概要文件之后,它似乎发出了1444439次遍历,大约花费了80次 附加信息:这来自于使用AWS N

我需要得到与起始顶点有任意数量关系的所有顶点。我有一个正在工作的查询,但是在经过几百条边和图形的复杂性之后,它开始显著减慢。有没有更有效的方法获取相关顶点

g.V(id)
 .emit()
 .repeat(both())
 .until(cyclicPath())
 .unfold()
 .dedup()
 .toList()
性能崩溃的一个例子是一个有202个顶点,259条边的子图。在运行一个概要文件之后,它似乎发出了1444439次遍历,大约花费了80次


附加信息:这来自于使用AWS Neptune 1.0.1.0.200258.0运行。看起来,您只想查找以某种方式连接到初始顶点的所有顶点。尝试此查询(它不启用路径跟踪,因此应该更快):


这看起来确实更快。我遇到的问题是,初始顶点包含两次,因此我必须在末尾添加另一个
dedup()
。保留一个
dedup()
,但将
emit()
移到
repeat()
后面。这只会成为一个问题,如果初始顶点根本没有边,在所有其他情况下它会执行您想要的操作。是的,我们希望查询返回单个顶点(如果存在),因此需要在
repeat()
之前使用
emit()
g.V(id).emit().repeat(both().dedup())