Поиск всех путей в графе с помощью neo4j - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть DAG, и я хочу найти все пути в нем, используя neo4j.Для этого я использую следующий запрос:

MATCH (n)-[:REL]->(leaf)
RETURN n,leaf ;

Однако этот запрос только возвращает мне ребра.Однако я хочу, чтобы мой вывод имел вид:

  a->b->c->d->e->f->g->h->i
  a->b1->c1->d1->e1->f1->g1->h1->i1

Есть ли какой-нибудь способ, которым я могу использовать, чтобы получить этот вывод?

1 Ответ

0 голосов
/ 09 февраля 2019

Я думаю, вы захотите взглянуть на сопоставление с образцом переменной длины .Вы захотите добавить ограничения, чтобы ваш начальный узел был корневым, а ваш конечный узел - листом, иначе вы получите каждый подпуть в графике.

Кроме того, вам действительно следует использовать метки.Для примера, я просто: Узел в моем фрагменте Cypher:

MATCH path = (root:Node)-[:REL*]->(leaf)
WHERE NOT ()-[:REL]->(root) AND NOT (leaf)-[:REL]->()
RETURN path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...