Рекурсивно выбирать узлы с помощью запроса Gremlin - PullRequest
0 голосов
/ 17 мая 2019

Я бы хотел определить запрос Gremlin, который рекурсивно возвращает все узлы, пока больше нет доступных узлов:

Node: ProductionEvent
Node: Product

То, что я до сих пор пробовал, это следующее ... однако я не уверен, что вывод правильный. Кроме того, можно ли распечатать его с помощью функции tree ()? И можно ли выполнить функцию повтора с функцией times, чтобы получить все узлы?

g.V().hasLabel('ProductionEvent').
                repeat(__.outE('consumes').simplePath()).times(3). 
                emit().dedup()  

Я ожидаю такой вывод

Product1: consumed <--- ProductionEvent1 --> produced :Product2: consumed <--- ProductionEvent2 --> produced :Product3

1 Ответ

0 голосов
/ 21 мая 2019

Я достиг результатов, которыми доволен.Запрос:

 g.V().hasLabel('ProductionEvent').has('orderID', 'XYZ')
      .repeat(__.out('consumes').in_('produces').simplePath()).emit().times(5)
      .dedup().limit(6).next()

Насколько я понимаю, limit() и times() необходимы для того, чтобы улучшить время выполнения запроса, если число результатов известно заранее.И simplepath() гарантирует, что уже посещенные пути не будут повторно посещены.

...