2 votes

Récupérer tous les nœuds enfants récursivement

Actuellement, pour retourner un sous-graphe de Neo4J, j'utilise

MATCH (n {id:""}) OPTIONAL MATCH (n)-[*..25]->(m) RETURN DISTINCT *

Ceci est très inefficace pour les graphes profondément interconnectés (car sans RETURN DISTINCT, j'obtiens 100 000 résultats au lieu de moins de 100 résultats.

Comment puis-je demander efficacement tous les sous-nœuds d'un nœud sans utiliser APOC? (Autrement dit, rendre le DISTINCT redondant au lieu d'être requis dans la correspondance ; autrement dit, visiter chaque nœud une seule fois pendant la correspondance)?

0voto

Tezra Points 4908

À partir de Neo4j 3.2.x, (start)-[*..25]->(children) se comporte comme souhaité.

Avant cela, vous devez utiliser la fonction APOC expand apoc.path.spanningTree

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X