Especificación de etiquetas de borde cuando sea posible - Amazon Neptune

Especificación de etiquetas de borde cuando sea posible

Se recomienda proporcionar una etiqueta de borde cuando sea posible al especificar un borde en un patrón. Considere la siguiente consulta de ejemplo, que se utiliza para vincular a todas las personas que viven en una ciudad con todas las personas que han visitado esa ciudad.

MATCH (person)-->(city {country: "US"})-->(anotherPerson) RETURN person, anotherPerson

Si el modelo de gráfico vincula a las personas con nodos distintos de las ciudades a través de varias etiquetas de borde, al no especificar la etiqueta final, Neptune tendrá que evaluar rutas adicionales que posteriormente se descartarán. En la consulta anterior, al no proporcionar una etiqueta de borde, el motor primero hace un trabajo adicional y, a continuación, filtra los valores para obtener el resultado correcto. Una versión mejor de la consulta anterior podría ser:

MATCH (person)-[:livesIn]->(city {country: "US"})-[:visitedBy]->(anotherPerson) RETURN person, anotherPerson

Esto no solo ayuda en la evaluación, sino que permite al planificador de consultas crear mejores planes. Incluso se podría combinar esta práctica recomendada con las comprobaciones de etiquetas de nodos redundantes para eliminar la comprobación de la etiqueta de ciudad y escribir la consulta de la siguiente manera:

MATCH (person)-[:livesIn]->({country: "US"})-[:visitedBy]->(anotherPerson) RETURN person, anotherPerson