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:
-
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
-
-
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:
Recurso | Comportamento |
---|---|
Split/Shrink/Cloneíndice |
Eles APIs falham quando usados com um índice configurado com o |
Snapshots |
Os índices que usam o
notaEmbora os snapshots não sejam compatíveis com a point-in-time recuperação, o |
UltraWarm nível |
Os índices configurados com o |
Replicação entre clusters |
Os índices configurados com o |
Proteção contra exclusão acidental |
Como os instantâneos não são compatíveis com índices usando o |
Pesquisa radial |
As consultas com pesquisa radial não são suportadas em campos que usam o |
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.
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
.