Atributos e limites da pesquisa vetorial - Amazon ElastiCache

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á.

Atributos e limites da pesquisa vetorial

Disponibilidade da pesquisa vetorial

A pesquisa vetorial da Amazon ElastiCache está disponível com a versão 8.2 do Valkey em clusters baseados em nós em todas as AWS regiões, sem custo adicional. Você também pode usar a pesquisa vetorial nos clusters existentes atualizando de qualquer versão do Valkey ou do Redis OSS para o Valkey 8.2, em alguns cliques, sem tempo de inatividade.

Atualmente, a pesquisa vetorial está disponível em todos os tipos de ElastiCache instância, exceto nós com classificação de dados em camadas. O uso da pesquisa vetorial em instâncias t2, t3 e t4g exige aumentar a reserva de memória para pelo menos 50% para instâncias micro e 30% para instâncias pequenas. Consulte esta página para saber mais.

Restrições paramétricas

A tabela a seguir mostra os limites de vários itens de pesquisa vetorial:

Limites da pesquisa vetorial
Item Valor máximo
Número de dimensões em um vetor 32768
Número de índices que podem ser criados 10
Número de campos em um índice 50
Cláusula TIMEOUT de FT.SEARCH (milissegundos) 60000
Número máximo de prefixos permitidos por índice 16
O tamanho máximo de um campo de tag 10000
O tamanho máximo de um campo numérico 256
Parâmetro HNSW M 2000000
Parâmetro HNSW EF_CONSTRUCTION 4096
Parâmetro HNSW EF_RUNTIME 4096

Restrições operacionais

Persistência e preenchimento de índices

O processo de atualização tem três etapas. Na primeira etapa, a chave HASH ou JSON é modificada e o cliente solicitante é bloqueado. A segunda etapa é executada em segundo plano e atualiza cada um dos índices que contêm a chave modificada. Na terceira etapa, o cliente é desbloqueado. Assim, para operações de consulta realizadas na mesma conexão de uma mutação, essa alteração é imediatamente visível nos resultados da pesquisa. No entanto, a inserção ou atualização de uma chave pode não ficar visível nos resultados da pesquisa para outros clientes por um curto período. Durante períodos de grande carga do sistema (mutação and/or intensa de dados), o atraso na visibilidade pode se tornar maior.

O atributo de pesquisa vetorial mantém a definição de índices e o conteúdo dos índices. Os índices para campos vetoriais são salvos, mas os índices para TAGS e NUMERIC não são salvos, o que significa que eles devem ser reconstruídos quando carregados externamente (sincronização completa ou recarga). Isso significa que, durante qualquer solicitação ou evento operacional que faça com que um nó seja iniciado ou reiniciado, a definição e o conteúdo do índice para vetores são restaurados com base no snapshot mais recente. Nenhuma ação do usuário é necessária para iniciar isso. No entanto, para índices TAGS e NUMERIC, a reconstrução é executada como uma operação de preenchimento assim que os dados são restaurados. Isso é funcionalmente equivalente ao sistema executar automaticamente um comando FT.CREATE para cada índice definido. Observe que o nó fica disponível para operações do aplicativo assim que os dados são restaurados, mas provavelmente antes da conclusão do preenchimento do índice, o que significa que as operações de preenchimentos voltarão a ficar visíveis para as aplicações.

A conclusão do preenchimento do índice não é sincronizada entre um primário e uma réplica. Essa falta de sincronização pode se tornar inesperadamente visível para as aplicações e, portanto, é recomendável que estas verifiquem a conclusão do preenchimento nos primários e em todas as réplicas antes de iniciar as operações de pesquisa.

Limites de escala

Durante eventos de escalabilidade, o índice pode ser preenchido conforme os dados são migrados. Isso resultará em um recall reduzido para consultas de pesquisa.

Instantâneo import/export e migração ao vivo

Os arquivos RDB de um cluster com índices de pesquisa podem ser importados para outro cluster ElastiCache Valkey com a versão 8.2 ou superior. O novo cluster reconstruirá o conteúdo do índice ao carregar o arquivo RDB. No entanto, a presença de índices de pesquisa em um arquivo RDB limita a compatibilidade desses dados com versões anteriores do Valkey. O formato dos índices de pesquisa definidos pela funcionalidade de pesquisa vetorial só é compreendido por outro ElastiCache cluster com Valkey versão 8.2 ou superior. No entanto, arquivos RDB que não contêm índices não são restritos dessa maneira.

Sem memória durante o preenchimento

Semelhante às operações de gravação do Valkey OSS, um preenchimento de índice está sujeito a limitações. out-of-memory Se a memória do mecanismo ficar cheia enquanto um preenchimento estiver em andamento, todos os preenchimentos serão pausados. Se a memória ficar disponível, o processo de preenchimento será retomado. É possível excluir um índice quando o preenchimento é pausado devido à falta de memória.

Transações

Os comandos FT.CREATE, FT.DROPINDEX, FT.ALIASADD, FT.ALIASDEL e FT.ALIASUPDATE não podem ser executados em um contexto transacional, ou seja, não dentro de um bloco MULTI/EXEC ou dentro de um script LUA ou FUNCTION.