我目前正在遍历一个需要避免循环遍历的图形。 但是,某些顶点会选择性地包含一个邻居,该邻居包含一些我必须访问的元数据。
[NodeB-Metadata]
^
|
[NodeA] --> [NodeB] --> [NodeC]
当前,在遍历中,我将在重复步骤中存储遍历的顶点.as(“ currentNode”)。当发现(可选)元数据节点的边缘时,我将通过选择“ currentNode”属于inVertices集的顶点继续遍历。我使用simplePath()来确保没有周期性遍历。
我还没有对数据进行任何分析,但是我认为每当发现元数据顶点时进行新的顶点搜索都是昂贵的(而且代码很难读懂)。我想遍历原始节点并继续搜索,但是我的路径将变成周期性的。有没有办法检查当前路径中是否遍历了单个顶点(或单个边)?我只关心在重复开始之前没有遍历当前顶点...
PS:我的遍历是在基于图数据库的先前遍历创建的InMemory / TinkerGraph / Subgraph上执行的,因此我可能会创建一个自定义步骤吗? 但是,我使用Java(而不是Groovy),对此并不熟悉。