Coloque nós mais restritivos no lado esquerdo em expressões de caminho de comprimento variável (VLP)
Nas consultas de caminho de comprimento variável (VLP), o mecanismo de consulta otimiza a avaliação escolhendo iniciar o percurso do lado esquerdo ou direito da expressão. A decisão é baseada na cardinalidade de padrões no lado esquerdo e direito. A cardinalidade é o número de nós que correspondem ao padrão especificado.
-
Se o padrão correto tiver uma cardinalidade de um, o lado direito será o ponto de partida.
-
Se o lado esquerdo e o direito tiverem cardinalidade de um, a expansão é verificada em ambos os lados e começa no lado com a expansão menor. Expansão é o número de bordas de entrada ou saída do nó à esquerda e à direita da expressão VLP. Essa parte da otimização é usada somente se o relacionamento VLP for unidirecional e for fornecido.
-
Caso contrário, o lado esquerdo será o ponto de partida.
Para uma cadeia de expressões VLP, essa otimização só pode ser aplicada à primeira expressão. As outras VLPs são avaliadas começando pelo lado esquerdo. Como exemplo, a cardinalidade de (a), (b) deve ser um e a cardinalidade de (c) maior que um.
-
(a)-[*1..]->(c): a avaliação começa com (a). -
(c)-[*1..]->(a): a avaliação começa com (a). -
(a)-[*1..]-(c): a avaliação começa com (a). -
(c)-[*1..]-(a): a avaliação começa com (a).
Agora, permita que as bordas de entrada de (a) sejam dois, as bordas de saída de (a) três, as formas de entrada de (b) quatro e as bordas de saída de (b), cinco.
-
(a)-[*1..]->(b): a avaliação começa com (a), pois as bordas de saída de (a) são menores do que as bordas de entrada de (b). -
(a)<-[*1..]-(b): a avaliação começa com (a), pois as bordas de entrada de (a) são menores do que as bordas de saída de (b).
Como regra geral, coloque o padrão mais restritivo no lado esquerdo de uma expressão VLP.