AWS Neptune Gremlin 在散列边缘 ID 上分页

AWS Neptune Gremlin paginate on hashed edge ID

我有一个非常大的数据集,接近5亿条边,其中几乎所有的边都需要遍历。我试图通过尝试在 IDS 上分页来并行化这些遍历。我的策略是尝试按 MD5 散列的 ID 进行分页。我尝试了如下查询:

g.E().hasLabel('foo').has(id, TextP.startingWith('AAA')) 第 1 页 g.E().hasLabel('foo').has(id, TextP.startingWith('AAB')) 第 2 页

但每个查询似乎都在进行全面扫描,而不仅仅是一个子集。你建议我如何进行分页?

我建议您 运行 profile 踩下您的查询以查看实际遍历量。

id 上使用 startingWith 谓词对我来说似乎不是一个优化的解决方案,因为它可能使用哈希索引,而不是范围索引。 我会尝试在其他字符串 属性 上添加前缀,甚至添加随机 [1..n] 'replica' 属性 并使用 .has('replica', i) 进行过滤以获得最佳性能,尤其是在这么大的图表上。