As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Dica de consulta do Gremlin typePromotion
Quando você envia um percurso do Gremlin que filtra por um valor ou um intervalo numérico, o mecanismo de consulta do Neptune normalmente deve usar promoção de tipo ao executar a consulta. Isso significa que ele precisa examinar valores de todos os tipos que possam conter o valor que você está filtrando.
Por exemplo, se você estiver filtrando valores iguais a 55, o mecanismo deverá procurar números inteiros iguais a 55, números inteiros longos iguais a 55L, flutuantes iguais a 55,0, etc. Cada promoção de tipo exige uma pesquisa adicional no armazenamento, o que pode fazer com que uma consulta aparentemente simples leve um tempo inesperadamente longo para ser concluída.
Digamos que você esteja pesquisando todos os vértices com uma propriedade de idade do cliente maior que 5:
g.V().has('customerAge', gt(5))
Para executar esse percurso completamente, o Neptune deve expandir a consulta para examinar cada tipo numérico para o qual o valor que você está consultando poderia ser promovido. Nesse caso, o filtro gt
deve ser aplicado para qualquer número inteiro acima de 5, qualquer valor longo acima de 5L, qualquer flutuante acima de 5,0 e qualquer dobro acima de 5,0. Como cada um desses tipos de promoção exige uma pesquisa adicional sobre armazenamento, você verá vários filtros por filtro numérico ao executar o Gremlin profile API para essa consulta, e ela levará muito mais tempo para ser concluída do que o esperado.
Muitas vezes, a promoção de tipo é desnecessária porque você sabe de antemão que só precisa encontrar valores de um tipo específico. Nesse caso, você pode acelerar suas consultas drasticamente usando a dica de consulta typePromotion
para desativar a promoção de tipos.
Sintaxe
A dica de consulta typePromotion
é especificada, adicionando uma etapa withSideEffect
para a consulta.
g.withSideEffect('Neptune#typePromotion',
true or false
).gremlin-traversal
nota
Todas os efeitos colaterais de dicas de consulta do Gremlin são prefixados com Neptune#
.
Valores disponíveis
true
false
Para desativar a promoção de tipos para a consulta acima, você usaria:
g.withSideEffect('Neptune#typePromotion', false).V().has('customerAge', gt(5))