Esta página fornece detalhes sobre as funcionalidades e as limitações da pesquisa vetorial.
Disponibilidade
A pesquisa vetorial está disponível em todas as versões do Memorystore for Redis Cluster em todos os níveis e em todas as regiões suportadas.
Apenas as instâncias criadas após a data de lançamento de 13 de setembro de 2024 têm a pesquisa vetorial ativada.
Restrições de índice
Seguem-se as limitações do índice:
- O número máximo de atributos num índice não pode exceder 10.
- A dimensão de um vetor não pode exceder 32 768.
- O valor M para HNSW não pode exceder 2 milhões.
- O valor EF Construct para HNSW não pode exceder 4096.
- O valor do tempo de execução do EF para HNSW também não pode exceder 4096.
Impactos no desempenho
Quando considerar o desempenho da pesquisa vetorial, existem algumas variáveis importantes a ter em conta.
Tipo de nó
A pesquisa vetorial facilita o escalamento vertical através da integração de conjuntos de threads dedicados à execução de operações de pesquisa vetorial. Isto significa que o desempenho está associado ao número de vCPUs em cada nó no cluster. Para ver detalhes sobre o número de vCPUs disponíveis em cada tipo de nó, consulte o artigo Especificação do cluster e do nó.
Número de fragmentos
O Memorystore for Redis Cluster implementa uma técnica de indexação local para todos os vetores. Isto significa que o índice armazenado em cada fragmento contém apenas os documentos contidos nesse fragmento. Por este motivo, a velocidade de indexação e o número total de vetores são dimensionados linearmente com o número de fragmentos no cluster.
Uma vez que cada índice local contém apenas o conteúdo de um único fragmento, a pesquisa no cluster requer a pesquisa de cada fragmento no cluster e a agregação dos resultados. Com uma quantidade estável de vetores, o aumento do número de fragmentos melhora o desempenho da pesquisa de forma logarítmica para os índices HNSW e linear para os índices FLAT, devido ao facto de cada índice local conter menos vetores.
Tenha em atenção que, devido ao aumento do trabalho necessário para pesquisar todos os fragmentos, a latência observável para concluir um determinado pedido de pesquisa pode aumentar à medida que são adicionados mais fragmentos. Apesar disso, mesmo os clusters maiores suportam latências de milissegundos de um único dígito.
Número de réplicas
A adição de réplicas adicionais aumenta o débito de pesquisa linearmente, permitindo o equilíbrio de carga dos pedidos de pesquisa para ler réplicas.
Dimensionar eventos
Após redimensionar o cluster do Redis, os documentos nos seus índices são movidos para distribuir uniformemente os dados pela nova quantidade de fragmentos. Quando isto acontece, os documentos movidos entre nós são indexados em segundo plano. Após a conclusão da operação de dimensionamento, pode monitorizar o valor de mutation_queue_size
no resultado FT.INFO para ver o progresso da reindexação devido à alteração do tamanho do cluster.
Consumo de memória
Os vetores são duplicados e armazenados no espaço de chaves do Redis e no algoritmo de pesquisa vetorial.
Transações
Devido à natureza assíncrona da execução de tarefas por pools de threads, as operações de pesquisa vetorial não seguem a semântica transacional.