我在 Cassandra 上使用 Rexster/TITAN 0.4。顶点键使用标准索引进行索引,如下所示。g.makeKey("domain").dataType(String.class).indexed("standard", Vertex.class).make(); 我没有将唯一性用于性能和可伸缩性。图中大约有 10M 个顶点。
我的要求是遍历每个顶点并确定是否有重复项,然后将其删除。有没有办法直接从已经存在的索引中获取排序的顶点列表。类似于“直接索引查询”的索引(标准 TITAN 索引)的直接查询。这样我就可以将整个顶点分成更小的批次并单独处理。
如果不可能,实现这一目标的最佳方法是什么。我不想使用 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
但是这个查询没有使用在 'domain' 上创建的标准索引,并且无法运行,出现内存不足的异常。我在图中有~10M 个顶点。
在这种特殊情况下,如何强制 gremlin 使用索引?