检查路径/遍历中是否重复了单个顶点

时间:2019-02-08 14:10:03

标签: gremlin tinkerpop3 janusgraph

我目前正在遍历一个需要避免循环遍历的图形。 但是,某些顶点会选择性地包含一个邻居,该邻居包含一些我必须访问的元数据。

       [NodeB-Metadata]
               ^
               |
[NodeA] --> [NodeB] --> [NodeC]

当前,在遍历中,我将在重复步骤中存储遍历的顶点.as(“ currentNode”)。当发现(可选)元数据节点的边缘时,我将通过选择“ currentNode”属于inVertices集的顶点继续遍历。我使用simplePath()来确保没有周期性遍历。

我还没有对数据进行任何分析,但是我认为每当发现元数据顶点时进行新的顶点搜索都是昂贵的(而且代码很难读懂)。我想遍历原始节点并继续搜索,但是我的路径将变成周期性的。有没有办法检查当前路径中是否遍历了单个顶点(或单个边)?我只关心在重复开始之前没有遍历当前顶点...

PS:我的遍历是在基于图数据库的先前遍历创建的InMemory / TinkerGraph / Subgraph上执行的,因此我可能会创建一个自定义步骤吗? 但是,我使用Java(而不是Groovy),对此并不熟悉。

0 个答案:

没有答案