Consulta Cypher para listar todos os grafos desconectados Neo4j graph DB?

O banco de dados gráfico Neo4j contém aproximadamente 50.000 nós e> 50.000 relacionamentos. Existe um gráfico principal que contém a maioria dos nós. Mas existem vários gráficos que não estão (ainda) conectados ao gráfico principal.

Para conectar os vários gráficos para formar um grande gráfico principal, pretendo usar uma consulta Cypher para listar caminhos ou coleções de nós conectados ordenados por seu tamanho (maior gráfico desconectado primeiro).

Existem vários posts em stackoverflow como:

Encontrar todos os subgrafos desconectados em um gráfico mas não é óbvio como resolvê-lo com o Cypher.Como faço para encontrar nós desconectados no neo4j com Cypher?

Aqui está um pequeno gráfico de exemplo que representa o problema:Gráfico de exemplo do Neo4j Console

A consulta Cypher a seguir não resolve o problema, mas é um ponto de partida. Ele lista todos os nós que não estão conectados ao gráfico principal. Ele perde a combinação desses nós em coleções de nós. Ele funciona em um pequeno gráfico. Em um gráfico grande, ele retorna "indefinido" ... depois de executar mais 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;

Como usar o Cypher para listar todos os (sub-) gráficos desconectados?

Ambiente: - Neo4j - Kernel de Banco de Dados de Gráficos 1.9.M05 - Java - SE Runtime Environment (build 1.7.0_17-b02)