Получить весь подграф, начиная с одного узла в Neo4J? - PullRequest
0 голосов
/ 07 марта 2019

Я хочу извлечь (извлечь) все узлы и отношения в графе, начиная с определенного узла.

Я пробовал что-то вроде:

MATCH (n:Resource {resource_id: "R208997"})
MATCH p=(n)-[*]->(m) 
RETURN p

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

Я хочу иметь таблицу, показывающую следующее:

From | Rel. | To
----------------
x    | r    | y
z    | r2   | g

Я использую версию: 3.4.12 Community Edition Neo4J, и данные, над которыми я работаю, выглядят так: enter image description here

1 Ответ

1 голос
/ 07 марта 2019

Наилучшим подходом является использование процедур APOC , у нас есть несколько процедур расширения пути для этого.

Вы можете использовать apoc.path.subgraphAll () для этого, YIELDing отношений, которые вы можете псевдоним соответственно:

MATCH (n:Resource {resource_id: "R208997"})
CALL apoc.path.subgraphAll(n, {relationshipFilter:'>'}) YIELD relationships
UNWIND relationships as rel
RETURN startNode(rel) as from, type(rel) as rel, endNode(rel) as to

Если вам нужно вывести только определенные свойства из узлов, а не из самого узла, то вы можете соответствующим образом изменить это в ВОЗВРАТЕ.

...