

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

# Recursos avançados de pesquisa com um mecanismo vetorial Amazon S3
<a name="s3-vector-opensearch-integration-engine"></a>

O Amazon OpenSearch Service oferece a capacidade de usar o Amazon S3 como um mecanismo vetorial para índices vetoriais. Esse atributo permite descarregar dados vetoriais para o Amazon S3 enquanto mantém recursos de pesquisa vetorial em fração de segundos por um preço baixo.

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 no S3 Vectors são armazenados no S3, que foi projetado para oferecer 99,999999999% de durabilidade de 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 workloads 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

## Habilitar vetores do S3
<a name="s3-vector-opensearch-integration-engine-enable"></a>

Ao [criar um novo domínio](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html) ou atualizar um domínio existente, você pode escolher a opção **Habilitar o S3 Vectors 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`

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

## Criar índices com o mecanismo vetorial do S3
<a name="s3-vector-opensearch-integration-engine-creating-indexes"></a>

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

**Importante**  
Você só pode usar o mecanismo `s3vector` no mapeamento de uma definição de campo durante a criação do índice. Não é possível adicionar ou atualizar o mapeamento com o mecanismo `s3vector` após a criação do índice.

Aqui estão alguns exemplos que criam índices de mecanismo vetorial do S3.

**Exemplo: criação de um índice k-NN com o mecanismo vetorial do 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 os mecanismos vetoriais e FAISS do S3**

Este exemplo destaca o fato de que é possível 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 do que não é compatível: adição do mecanismo vetorial do S3 após a criação do índice**

A abordagem a seguir não é compatível e não funcionará.

```
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 de funcionalidade
<a name="s3-vector-opensearch-integration-engine-functional-limitations"></a>

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


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

| Recurso | Comportamento | 
| --- | --- | 
| Índice do Split/Shrink/Clone | Eles APIs falham quando usados com um índice configurado com o `s3vector` mecanismo em `knn_vector` campo. | 
| Snapshots | Os índices que usam o mecanismo `s3vector` não são compatíveis com snapshots. Para domínios gerenciados:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/s3-vector-opensearch-integration-engine.html) 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 mecanismo `s3vector` não são compatíveis com replicação entre clusters. | 
| Proteção contra exclusão acidental | Como os snapshots não são compatíveis com índices que usam o mecanismo `s3vector`, 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 compatíveis em campos que usam o mecanismo `s3vector`. | 

## Indexar documentos
<a name="s3-vector-opensearch-integration-engine-index-documents"></a>

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á garantia de durabilidade dos documentos dessa solicitação em massa. Você deve repetir essas solicitações, de preferência depois de excluir a solicitação anterior que falhou, usando o ID do documento para evitar documentos duplicados nesses casos raros.

**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 }
```

## Pesquisar documentos
<a name="s3-vector-opensearch-integration-engine-searching-documents"></a>

Você pode pesquisar seu índice usando a API `_search` 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` motor, as consultas de pesquisa k-NN suportam um `k` valor máximo de 100. Isso significa que no máximo 100 vizinhos mais próximos podem ser retornados nos resultados da pesquisa.

**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
      }
    }
  }
}
```

Você pode executar uma pesquisa vetorial filtrada no índice OpenSearch kNN usando o mecanismo s3vector. OpenSearch aplica o filtro como pós-filtro e usa o mecanismo de sobreamostragem com base em certas heurísticas para equilibrar recuperação versus latência.

**Exemplo de consulta de pesquisa com filtro:**

```
GET my-index/_search
{
  "size": 10,
  "query": {
    "knn": {
      "my_vector_field": {
        "vector": [2.5, 3.5, 1.2, 4.8],
        "k": 10,
        "filter": {
          "range": {
            "price": {
              "gte": 10,
              "lte": 100
            }
          }
        }
      }
    }
  }
}
```

## Parâmetros de mapeamento compatíveis
<a name="s3-vector-opensearch-integration-engine-supported-mapping-parameters"></a>

Com o mecanismo `s3vector`, o campo `knn_vector` é compatível com os seguintes parâmetros nos mapeamentos.


**Parâmetros de campo vetorial**  

| Parâmetro | Obrigatório | Description | 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 de k-NN aproximado a ser usado para indexação e pesquisa. | s3vector | 
| method.name | Não | O método de vizinho mais próximo | "" | 
| store | N/D | Habilitar ou desabilitar esse parâmetro de mapeamento não é operacional, pois os dados knn\_vector não são armazenados em. OpenSearch | Não suportado | 
| doc\_values | N/D | Habilitar ou desabilitar esse parâmetro de mapeamento não é operacional, pois os dados knn\_vector não são armazenados em. OpenSearch | Não suportado | 

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

## Medição e faturamento
<a name="s3-vector-opensearch-integration-engine-metering-billing"></a>

Para obter informações sobre medição e cobrança desse recurso, consulte os preços do [Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/pricing/).

## Desabilitar o mecanismo s3vector
<a name="s3-vector-opensearch-integration-engine-disable"></a>

Antes de desabilitar o mecanismo `s3vector`, exclua *todos os* índices que o usam atualmente. Se você não fizer isso, qualquer tentativa de desabilitar o mecanismo será malsucedida.

Observe também que habilitar ou desabilitar o mecanismo `s3vector` aciona uma [implantação azul/verde](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes.html) no domínio.

Para desabilitar o mecanismo `s3vector`, [edite a configuração do domínio](https://docs.aws.amazon.com/cli/latest/reference/opensearch/update-domain-config.html) e defina `S3VectorsEngine.Enabled: false`.