Ноль или более длина пути в Cypher - PullRequest
0 голосов
/ 09 декабря 2018

Например, у меня есть путь:

1-[:A]->2-[:B]->3

И мы можем использовать оператор *, чтобы определить, можно ли повторить конкретное ребро.Я хотел бы использовать оператор * на всем пути или на обоих ребрах вместе взятых.Я хотел бы следовать: (A и B) ноль или более раз.

Пример:

1-[:A]->2-[:B]->3-[:A]->4-[:B]->5...

Я не уверен, как применить оператор * для всего пути в Cypher.Мое намерение состоит в том, чтобы выразить образец, который позволяет определенному пути повторяться 0 или более раз.

1 Ответ

0 голосов
/ 09 декабря 2018

Это то, что паттерны переменной длины не могут делать в Cypher.Однако из-за этого мы добавили функциональность повторяющихся последовательностей к процессам расширителя пути в процедурах APOC .

Как пример:

MATCH (n)
WHERE id(n) = 123
CALL apoc.path.expandConfig(n, {relationshipFilter:'A>, B>'}) YIELD path
RETURN path

Это расширение от начального узла(n) расширение только повторяющейся последовательности исходящих: A и: B отношений.Свойства minLevel или maxLevel не были предоставлены, поэтому он имеет минимальную длину 0 и не имеет границ для максимальной длины.

...