В настоящее время я пересекаю график, на котором мне нужно избегать круговых обходов.Однако некоторые вершины могут содержать соседа, который содержит некоторые метаданные, которые я должен посетить.
[NodeB-Metadata]
^
|
[NodeA] --> [NodeB] --> [NodeC]
В настоящее время в моем обходе я буду хранить пройденные вершины .as ("currentNode") во время повторного шага.Когда ребро к узлу метаданных (необязательно) обнаружено, я продолжу свой обход, выбрав вершины, где «currentNode» принадлежит набору inVertices.Я использую simplePath (), чтобы убедиться в отсутствии циклических обходов.
Я не проводил никакого анализа данных, но я полагаю, что каждый раз, когда я обнаруживаю вершину метаданных, стоит проводить поиск новой вершины.(Также код трудно читать / рассуждать о).Я хотел бы вернуться к исходному узлу и продолжить поиск, но мой путь станет циклическим.Есть ли способ проверить, была ли пройдена одна вершина (или одно ребро) в текущем пути?Меня интересует только то, что текущая вершина не была пройдена ранее в начале моего повтора ...
PS: Мой обход выполняется на InMemory / TinkerGraph / Subgraph, созданном из предыдущего обхода графа-DB, так что я мог бы потенциально создать пользовательский шаг?Однако я использую Java (не Groovy) и не знаком с этим.