Java 从Titan graph数据库中选择随机顶点的最佳方法是什么

Java 从Titan graph数据库中选择随机顶点的最佳方法是什么,java,graph,graph-databases,titan,Java,Graph,Graph Databases,Titan,我需要从图中选择随机顶点或边。我目前正在使用blueprints API查询图形。从我的图形中随机选取顶点或边的最佳方法是什么?假设您不知道图形中的所有元素,可以使用或从图形中检索所有顶点/边 但是由于您从这些方法中获得了一个迭代器,所以实际的问题是,如何从迭代器中选择一个随机元素 有两种方法可以解决这个问题 迭代所有元素并将它们存储在数组或列表中,然后根据集合的大小选择一个随机元素,或 在迭代元素时使用。 如果使用,则有另一种方法可以解决此问题,即根据标签执行查询,使用并选择第一个顶点。我当前

我需要从图中选择随机顶点或边。我目前正在使用blueprints API查询图形。从我的图形中随机选取顶点或边的最佳方法是什么?

假设您不知道图形中的所有元素,可以使用或从图形中检索所有顶点/边

但是由于您从这些方法中获得了一个迭代器,所以实际的问题是,如何从迭代器中选择一个随机元素

有两种方法可以解决这个问题

迭代所有元素并将它们存储在数组或列表中,然后根据集合的大小选择一个随机元素,或 在迭代元素时使用。
如果使用,则有另一种方法可以解决此问题,即根据标签执行查询,使用并选择第一个顶点。

我当前正在将所有顶点放入arraylist,然后生成一个介于0和arraylist大小之间的随机数。Arraylist.getrandomNumber方法当前正在工作,但速度较慢。我想知道是否有其他方法来选择随机顶点。我的要求是在具有特定edgelabel属性的边中获取随机顶点,或者查询具有特定标签的随机边,以便获取其顶点。然后第二种方法应该适合您的需要。您应该使用像graph.query.labelsfoo.vertices这样的查询,并使用Reservoire采样来避免从迭代器中选择随机元素的额外列表。我使用的是titan graph数据库,我不认为ha方法是graph的标签。graph.query.labels引发编译错误。我有一个带有vertex thoughvertex.query.labels的lables方法。是的,你是对的,这只在顶点上可用。但是水库取样仍然应该用GetEdge完成它的工作。我添加了另一种方法,也许这会对你有所帮助。