我是Titan的新手,正在寻找在不耗尽内存的情况下迭代具有给定标签的整个顶点集的最佳方法。我有很强的SQL背景,所以我仍然在努力将我的思维方式从SQL类型的思维方式转换过来。假设我有一百万个轮廓顶点。我想遍历每个配置文件,并对链接到每个配置文件的信息执行某种类型的统计分析。我真的不关心整个分析过程需要多长时间,但我需要迭代所有的配置文件。在SQL语言中,我会使用滚动敏感的结果从MY_TABLE中选择*,获取下一个结果,抓取并处理链接到该行的信息,然后获取下一个结果。我也不关心结果是否实时准确,因为它只是为了收集一般统计数据,所以如果在迭代过程中添加了新的配置文件,而我错过了它,那也没问题。
即使有一种方法可以获取给定属性的所有值,这也可能是可行的,因为这样我就可以遍历该列表,并通过ID来获取每个顶点。
发布于 2016-01-27 16:49:19
我相信titan做了延迟加载,所以你应该能够遍历整个图:
GraphTraversal<Vertex, Vertex> it = graph.traversal().V();
while(it.hasNext()){
Vertex v = it.next():
//Do what you want here
}另一种选择是使用range步骤,以便显式选择所需的顶点范围。例如:
List<Vertex> vertices = graph.traversal().V().range(0, 3).toList();
//Do what you want with your batch of vertices.关于获取特定类型的顶点,您可以根据其内部属性来查询顶点。例如,如果您有和内部属性"TYPE",它定义了您感兴趣的类型。您可以通过以下方式查询这些顶点:
graph.traversal().V().has("TYPE", "A"); //Gets vertices of type A
graph.traversal().V().has("TYPE", "B"); //Gets vertices of type Bhttps://stackoverflow.com/questions/35015214
复制相似问题