¿Cypher consulta para enumerar todos los gráficos desconectados Neo4j gráfico DB?

La base de datos del gráfico Neo4j contiene aproximadamente 50,000 nodos y> 50,000 relaciones. Hay un gráfico principal que contiene la mayoría de los nodos. Pero hay varios gráficos que todavía no están conectados al gráfico principal.

Con el fin de conectar los diversos gráficos para formar un gran gráfico principal, pretendo usar una consulta Cypher para enumerar rutas o colecciones de nodos conectados ordenados por su tamaño (el gráfico más grande desconectado primero).

Hay varias publicaciones en stackoverflow como:

Encontrar todos los subgrafos desconectados en un grafo Pero no es obvio cómo resolverlo con Cypher.¿Cómo encuentro nodos desconectados en neo4j con Cypher?

Aquí hay un pequeño ejemplo de gráfico que representa el problema:Ejemplo de consola Neo4j gráfico

La siguiente consulta de Cypher no resuelve el problema, pero es un punto de partida. Enumera todos los nodos que no están conectados al gráfico principal. Se pierde la combinación de esos nodos en colecciones de nodos. Funciona en una pequeña gráfica. En un gráfico grande, solo devuelve "indefinido" ... después de ejecutar más de 10 minutos.

START s=node(3), n=node(*) 
MATCH s-[*1..10]-m 
WITH collect(m) as members, n 
WHERE NOT n in members 
RETURN DISTINCT id(n), n.name? 
ORDER BY id(n) 
LIMIT 10;

¿Cómo usar Cypher para enumerar todos los (sub) gráficos desconectados?

Entorno: - Neo4j - Graph Database Kernel 1.9.M05 - Java - SE Runtime Environment (compilación 1.7.0_17-b02)

Respuestas a la pregunta(1)

Su respuesta a la pregunta