(Pré-visualização) Recursos avançados de pesquisa com um mecanismo vetorial Amazon S3 - OpenSearch Serviço Amazon

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

(Pré-visualização) Recursos avançados de pesquisa com um mecanismo vetorial Amazon S3

Importante

A integração do Amazon S3 Vectors com o OpenSearch Service está em versão prévia e está sujeita a alterações.

O Amazon OpenSearch Service oferece a capacidade de usar o Amazon S3 como um mecanismo vetorial para índices vetoriais. Esse recurso permite que você transfira dados vetoriais para o Amazon S3 enquanto mantém recursos de pesquisa vetorial em menos de um segundo a baixo custo.

Com esse recurso, OpenSearch armazena incorporações vetoriais em um índice vetorial do Amazon S3 enquanto mantém outros campos do documento no armazenamento OpenSearch do cluster. Essa arquitetura oferece os seguintes benefícios:

  • Durabilidade: os dados gravados nos vetores do S3 são armazenados no S3, que foi projetado para 11 9s de durabilidade dos dados.

  • Escalabilidade: descarregue grandes conjuntos de dados vetoriais para o S3 sem consumir armazenamento em cluster.

  • Custo-benefício: otimize os custos de armazenamento para cargas de trabalho com muitos vetores.

OpenSearch tem os seguintes requisitos para usar índices vetoriais S3:

  • OpenSearch versão 2.19 ou posterior

  • OpenSearch Instâncias otimizadas

  • Versão de patch mais recente para seu OpenSearch lançamento

Habilitando vetores S3

Ao criar um novo domínio ou atualizar um domínio existente, você pode escolher a opção Ativar vetores do S3 como mecanismo na seção Recursos avançados. Essa configuração permite OpenSearch criar um bucket vetorial S3 quando você utiliza os vetores S3 como seu mecanismo. Quando você ativa essa opção, OpenSearch configura os vetores do S3 para seu domínio da seguinte forma:

  1. Criando duas novas concessões na AWS KMS chave configurada com seu domínio:

    • Uma concessão para os trabalhos de indexação em segundo plano do S3 Vectors com privilégios de descriptografia

    • Uma concessão OpenSearch para criar buckets de vetores S3 com permissões GenerateDataKey

  2. Configurando a chave KMS usada pelo seu OpenSearch domínio como CMK para criptografia em repouso de todos os dados de índice vetorial.

Criação de índices com o mecanismo vetorial S3

Depois de configurar um domínio, você pode criar um ou mais índices k-NN com campos usando s3vector como mecanismo vetorial de back-end nos mapeamentos de índice. Você pode configurar diferentes campos vetoriais com diferentes tipos de mecanismos com base no seu caso de uso.

Importante

Você só pode usar o s3vector mecanismo no mapeamento de uma definição de campo durante a criação do índice. Você não pode adicionar ou atualizar o mapeamento com o s3vector mecanismo após a criação do índice.

Aqui estão alguns exemplos que criam índices de mecanismos vetoriais do S3.

Exemplo: Criação de um índice k-NN com o mecanismo vetorial S3

PUT my-first-s3vector-index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" } } } }

Exemplo: Criação de um índice k-NN com o vetor S3 e os mecanismos FAISS

Este exemplo destaca o fato de que você pode usar vários mecanismos vetoriais dentro do mesmo índice.

PUT my-vector-index { "settings": { "index": { "knn": true } }, "mappings": { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" }, "my_vector_2": { "type": "knn_vector", "dimension": 2, "space_type": "cosine", "method": { "name": "hnsw", "engine": "faiss", "parameters": { "ef_construction": 128, "m": 24 } } } } } }

Exemplo não suportado: adição do mecanismo vetorial S3 após a criação do índice

A abordagem a seguir não é suportada e falhará.

PUT my-first-s3vector-index { "settings": { "index": { "knn": true } } } PUT my-first-s3vector-index/_mapping { "properties": { "my_vector_1": { "type": "knn_vector", "dimension": 2, "space_type": "l2", "method": { "engine": "s3vector" } }, "price": { "type": "float" } } }

Limitações funcionais

Considere as seguintes limitações antes de usar o s3vector motor em um índice:

Características e comportamentos não compatíveis com o mecanismo s3vector
Recurso Comportamento

Split/Shrink/Cloneíndice

Eles APIs falham quando usados com um índice configurado com o s3vector mecanismo em knn_vector campo.

Snapshots

Os índices que usam o s3vector mecanismo não oferecem suporte a instantâneos. Para domínios gerenciados:

  • Os instantâneos automatizados incluem apenas índices que não usam o s3vector motor.

  • As solicitações manuais de instantâneos para s3vector índices falham.

nota

Embora os snapshots não sejam compatíveis com a point-in-time recuperação, o s3vector engine, junto com as instâncias OpenSearch otimizadas, oferecem 11 nove de durabilidade.

UltraWarm nível

Os índices configurados com o s3vector mecanismo não podem migrar para UltraWarm o nível.

Replicação entre clusters

Os índices configurados com o s3vector mecanismo não oferecem suporte à replicação entre clusters.

Proteção contra exclusão acidental

Como os instantâneos não são compatíveis com índices usando o s3vector mecanismo, a proteção contra exclusão acidental não está disponível. Você ainda pode restaurar outros índices no domínio.

Pesquisa radial

As consultas com pesquisa radial não são suportadas em campos que usam o s3vector mecanismo.

Indexação de documentos

Depois de criar um índice com o mecanismo vetorial S3, você pode ingerir documentos usando a API padrão_bulk. OpenSearch descarrega automaticamente os dados vetoriais dos knn_vector campos usando o s3vector mecanismo para o índice vetorial S3 em tempo real. Os dados pertencentes a outros knn_vector campos ou campos que usam mecanismos diferentes serão mantidos OpenSearch em sua própria camada de armazenamento.

Para todas as solicitações em massa que são reconhecidas, OpenSearch garante que todos os dados (vetoriais e não vetoriais) sejam duráveis. Se uma solicitação receber uma confirmação negativa, não há garantias sobre a durabilidade dos documentos nessa solicitação em massa. Você deve repetir essas solicitações.

Exemplo de indexação em massa

POST _bulk { "index": { "_index": "my-first-s3vector-index", "_id": "1" } } { "my_vector_1": [1.5, 2.5], "price": 12.2 } { "index": { "_index": "my-first-s3vector-index", "_id": "2" } } { "my_vector_1": [2.5, 3.5], "price": 7.1 } { "index": { "_index": "my-first-s3vector-index", "_id": "3" } } { "my_vector_1": [3.5, 4.5], "price": 12.9 } { "index": { "_index": "my-first-s3vector-index", "_id": "4" } } { "my_vector_1": [5.5, 6.5], "price": 1.2 } { "index": { "_index": "my-first-s3vector-index", "_id": "5" } } { "my_vector_1": [4.5, 5.5], "price": 3.7 }

Pesquisando documentos

Você pode pesquisar seu índice usando a _search API padrão para executar consultas de texto, k-NN ou híbridas. Para consultas em knn_vector campos configurados com o s3vector mecanismo, descarrega OpenSearch automaticamente a consulta para o índice de vetores S3 correspondente.

nota

Com o s3vector mecanismo, a semântica de atualização só se aplica aos campos que não usam o s3vector mecanismo. No entanto, seus dados vetoriais transferidos s3vector ficarão visíveis imediatamente após um documento ser indexado com sucesso.

Exemplo de consulta de pesquisa

GET my-first-s3vector-index/_search { "size": 2, "query": { "knn": { "my_vector_1": { "vector": [2.5, 3.5], "k": 2 } } } }

Parâmetros de mapeamento compatíveis

Com o s3vector motor, o knn_vector campo suporta os seguintes parâmetros nos mapeamentos.

Parâmetros do campo vetorial
Parameter Obrigatório Descrição Valores com suporte
type Sim O tipo de campo presente no documento. knn_vector
dimension Sim A dimensão de cada vetor que será ingerido no índice. >0, <= 4096
space_type Não O espaço vetorial usado para calcular a distância entre vetores. l2, cosinesimil
method.engine Sim O mecanismo k-NN aproximado a ser usado para indexação e pesquisa. s3vector
method.name Não O método do vizinho mais próximo ""
Importante

Os tipos de knn_vector campo aninhados não são compatíveis com o mecanismo s3vector

Medição e cobrança

Até que a medição seja anunciada, esse recurso não será cobrado.

Desativando o mecanismo s3vector

Antes de desativar o s3vector mecanismo, exclua todos os índices que o estão usando atualmente. Caso contrário, qualquer tentativa de desativar o motor falhará.

Observe também que ativar ou desativar o s3vector mecanismo aciona uma implantação azul/verde em seu domínio.

Para desativar o s3vector mecanismo, edite a configuração do seu domínio e definaS3VectorsEngine.Enabled: false.