Especificar rótulos de borda sempre que possível
É recomendável fornecer um rótulo de borda sempre que possível ao especificar uma borda em um padrão. Considere o exemplo de consulta a seguir, usado para vincular todas as pessoas que moram em uma cidade a todas as pessoas que visitaram essa cidade.
MATCH (person)-->(city {country: "US"})-->(anotherPerson) RETURN person, anotherPerson
Se seu modelo de grafo vincular pessoas a nós que não sejam somente cidades usando vários rótulos de borda, ao não especificar o rótulo final, o Neptune precisará avaliar caminhos adicionais que serão descartados posteriormente. Na consulta acima, como um rótulo de borda não foi fornecido, o mecanismo trabalha mais e depois filtra os valores para obter o resultado correto. Uma versão aprimorada da consulta acima pode ser:
MATCH (person)-[:livesIn]->(city {country: "US"})-[:visitedBy]->(anotherPerson) RETURN person, anotherPerson
Isso não só ajuda na avaliação, mas permite que o planejador de consultas crie planos melhores. Você pode até mesmo combinar essa prática recomendada com verificações redundantes de rótulos de nós para remover a verificação de rótulos de cidades e escrever a consulta como:
MATCH (person)-[:livesIn]->({country: "US"})-[:visitedBy]->(anotherPerson) RETURN person, anotherPerson