Neo4j находит путь между узлами с несколькими переходами и одним и тем же шаблоном - PullRequest
0 голосов
/ 09 мая 2020

у меня есть граф neo4j, изображающий транспортную систему.

Мои узлы:

  • Остановка (как автобусная остановка)
  • Соединение (узел подключения между 2 остановками)

Взаимосвязи:

  • (Stop)-[:HAS]->(Connection)-[:TO]->(Stop)

Моя проблема в том, что этот шаблон может повторяться несколько раз, например:

  • (Stop)-[:HAS]->(Connection)-[:TO]->(Stop)-[:HAS]->(Connection)-[:TO]->(Stop)-[:HAS]->(Connection)-[:TO]->(Stop)

Я хотел бы получить шифрованный запрос, чтобы я мог найти соединение между двумя остановками, даже если между ними есть несколько -[:HAS]->(Connection)-[:TO]-> шагов.

Я пробовал

MATCH (:Stop)-[:HAS]->(:Connection)-[:TO]->(:Stop)

, но с этим я получаю результаты только с 1 переходом. Надеюсь, мой вопрос понятен. С уважением

1 Ответ

1 голос
/ 09 мая 2020

Если единственными типами узлов между: Остановками являются: Подключения, тогда я думаю, что это даст вам то, что вам нужно:

   MATCH (from:Stop)-[:HAS|TO*1..5]-(to:Stop)
   WHERE ...

Однако с точки зрения схемы вы можете подумать о замене (:Stop)-[:HAS]->(:Connection)-[:T0]->(:Stop) только с одним отношением: (:Stop)-[:CONNECTS_TO]->(:Stop)

...