Entendiendo la palabra clave y el plan de ejecución de Neo4j Cypher Profile

¿Podría alguien explicar o proporcionar enlaces donde podamos conocer el comando de perfil y entender los planes de ejecución de Cypher consulta para las necesidades de optimización y comprender cómo funciona Cypher?

Por ejemplo, creé la siguiente base de datos de muestra Neo4j (versión 2.0).

create (ayan:Person{name:"Ayan",age:25}), 
(dixi:Person{name:"Dixi",age:26}), 
(thaggu:Person{name:"Thaggu",age:27}), 
(santosh:Person{name:"Santosh",age:28}),
(ayan)-[:FRIEND]-(santosh),
(ayan)-[:FRIEND]-(dixi),
(thaggu)-[:FRIEND]-(dixi);

Ahora, cuando ejecuto la consulta simple a continuación,

profile match n:Person, n-[:FRIEND]-m where n.name="Ayan" return m;

Obtengo el siguiente resultado, pero soyNo es capaz de entender la explicación debajo del resultado. Por favor ayuda.

+--------------------------------+
| m                              |
+--------------------------------+
| Node[4]{age:28,name:"Santosh"} |
| Node[2]{age:26,name:"Dixi"}    |
+--------------------------------+
2 rows



==> ColumnFilter(symKeys=["n", "m", "  UNNAMED17"], returnItemNames=["m"], _rows=2, _db_hits=0)

==> PatternMatch(g="(m)-['  UNNAMED17']-(n)", _rows=2, _db_hits=0)

==>   Filter(pred="(Property == Literal(Ayan) AND hasLabel(n: Person))", _rows=1, _db_hits=4)

==>     NodeByLabel(label="Person", identifier="n", _rows=4, _db_hits=0)

Respuestas a la pregunta(2)

Su respuesta a la pregunta