【发布时间】:2015-08-01 21:21:46
【问题描述】:
我在 Cassandra 上使用 Rexster/TITAN 0.4。 顶点键使用标准索引进行索引,如下所示。 g.makeKey("domain").dataType(String.class).indexed("standard", Vertex.class).make(); 我没有将唯一性用于性能和可伸缩性。 图中大约有 1000 万个顶点。
我的要求是遍历每个顶点并确定是否有重复项,然后将其删除。 有没有办法直接从已经存在的索引中获取排序的顶点列表。 对索引(标准 TITAN 索引)的直接查询,类似于 "Direct Index Query" 。 这样我就可以将整个顶点分割成更小的批次并单独处理。
如果不可能,实现这一目标的最佳方法是什么。 我不想使用 Titan-Hadoop 或类似的解决方案来查找/删除图中的重复项。
我想运行以下查询以按排序顺序获取 1000 个顶点。
gremlin> g.V.has('domain').domain.order[0..1000]
WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertice
s [(domain <> null)]. For better performance, use indexes
但此查询未使用在“域”上创建的标准索引,并且无法运行,出现内存不足异常。我在图中有大约 1000 万个顶点。
在这种特殊情况下如何强制 gremlin 使用索引?
【问题讨论】:
标签: graph-databases titan gremlin rexster