我想从图形中提取图形投影,以便我可以针对特定用例从大图形中构建更小的图形(在大多数情况下,我可以认为这些图形投影的尺寸小于源图形)。在我的原始图中考虑以下简单示例(所有节点都有不同类型,即标签):
A -> B -> C -> D
由于存在从A
到D
的路径,因此在我的新图表中,我会创建节点A
和D
以及它们之间的边缘。这些路径可以通过遍历(甚至是我认为的subgraph步骤)轻松发现:
g.V().as('a').out('aTob').out('bToC').out('cToD').as('d').select('a', 'd');
事实是,这些遍历不是从一组特定节点(将使用索引)开始的遍历效率不高,因为它们需要完整的图形扫描。
16:46:27 WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertices. For better performance, use indexes
这里可以采取哪些措施,以便以有效的方式完成图表投影?