

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Funzionalità di ricerca avanzate con un motore vettoriale Amazon S3
<a name="s3-vector-opensearch-integration-engine"></a>

Amazon OpenSearch Service offre la possibilità di utilizzare Amazon S3 come motore vettoriale per indici vettoriali. Questa funzionalità consente di scaricare dati vettoriali su Amazon S3 mantenendo funzionalità di ricerca vettoriale in meno di un secondo a costi contenuti.

Con questa funzionalità, OpenSearch archivia gli incorporamenti vettoriali in un indice vettoriale Amazon S3 mantenendo altri campi del documento nello OpenSearch storage del cluster. Questa architettura offre i seguenti vantaggi:
+ **Durabilità**: i dati scritti su S3 Vectors vengono archiviati su S3, progettato per 11 secondi di durata dei dati.
+ **Scalabilità: trasferisci** set di dati vettoriali di grandi dimensioni su S3 senza consumare lo storage del cluster.
+ **Convenienza: ottimizza i costi di archiviazione per carichi di lavoro** con molti vettori.

OpenSearch presenta i seguenti requisiti per l'utilizzo degli indici vettoriali S3:
+ OpenSearch versione 2.19 o successiva
+ OpenSearch Istanze ottimizzate
+ Versione della patch più recente per la tua OpenSearch versione

## Abilitazione di S3 Vectors
<a name="s3-vector-opensearch-integration-engine-enable"></a>

**Quando [crei un nuovo dominio](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html) o aggiorni un dominio esistente, puoi scegliere l'**opzione Abilita i vettori S3 come motore** nella sezione Funzioni avanzate.** Questa impostazione consente di OpenSearch creare un bucket vettoriale S3 quando utilizzi S3 Vectors come motore. Quando abiliti questa opzione, OpenSearch configura S3 Vectors per il tuo dominio tramite:

1. Creando due nuove concessioni sulla AWS KMS chiave configurata con il tuo dominio:
   + Una sovvenzione per i lavori di indicizzazione in background di S3 Vectors con privilegi di decrittografia
   + Una sovvenzione per creare bucket vettoriali S3 con autorizzazioni OpenSearch `GenerateDataKey`

1. Configurazione della chiave KMS utilizzata dal OpenSearch dominio come CMK per la crittografia del resto di tutti i dati dell'indice vettoriale.

## Creazione di indici con il motore vettoriale S3
<a name="s3-vector-opensearch-integration-engine-creating-indexes"></a>

Dopo aver configurato un dominio, puoi creare uno o più indici k-NN con campi da utilizzare `s3vector` come motore vettoriale di backend nelle mappature degli indici. Puoi configurare diversi campi vettoriali con diversi tipi di motore in base al tuo caso d'uso.

**Importante**  
È possibile utilizzare il `s3vector` motore solo per mappare una definizione di campo durante la creazione dell'indice. Non è possibile aggiungere o aggiornare la mappatura con il `s3vector` motore dopo la creazione dell'indice.

Ecco alcuni esempi che creano indici di motori vettoriali S3.

**Esempio: creazione di un indice k-NN con il motore vettoriale 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"
        }
    }
  }
}
```

**Esempio: creazione di un indice k-NN con motori vettoriali S3 e FAISS**

Questo esempio evidenzia il fatto che è possibile utilizzare più motori vettoriali all'interno dello stesso indice.

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

**Esempio non supportato: aggiunta del motore vettoriale S3 dopo la creazione dell'indice**

Il seguente approccio non è supportato e avrà esito negativo.

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

## Limitazioni funzionali
<a name="s3-vector-opensearch-integration-engine-functional-limitations"></a>

Considerate le seguenti limitazioni prima di utilizzare `s3vector` il motore in un indice:


**Caratteristiche e comportamenti non supportati dal motore s3vector**  

| Funzionalità | Comportamento | 
| --- | --- | 
| indice Split/Shrink/Clone | Questi APIs falliscono se utilizzati con un indice configurato con `s3vector` il motore in campo. `knn_vector` | 
| Snapshot | Gli indici che utilizzano il `s3vector` motore non supportano le istantanee. Per i domini gestiti:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/opensearch-service/latest/developerguide/s3-vector-opensearch-integration-engine.html) Sebbene le istantanee non siano supportate per il point-in-time ripristino, `s3vector` Engine, insieme alle istanze OpenSearch Optimized, offre 11 livelli di durabilità.  | 
| UltraWarm livello | Gli indici configurati con il `s3vector` motore non possono migrare al UltraWarm livello. | 
| Replica tra cluster | Gli indici configurati con il `s3vector` motore non supportano la replica tra cluster. | 
| Protezione da eliminazione accidentale | Poiché le istantanee non sono supportate per gli indici che utilizzano il `s3vector` motore, la protezione da eliminazione accidentale non è disponibile. Puoi comunque ripristinare altri indici nel dominio. | 
| Ricerca radiale | Le query con ricerca radiale non sono supportate nei campi che utilizzano il motore. `s3vector` | 

## Indicizzazione dei documenti
<a name="s3-vector-opensearch-integration-engine-index-documents"></a>

Dopo aver creato un indice con il motore vettoriale S3, puoi importare documenti utilizzando l'API standard. `_bulk` OpenSearch scarica automaticamente i dati vettoriali dei `knn_vector` campi che utilizzano il `s3vector` motore all'indice vettoriale S3 in tempo reale. I dati che appartengono ad altri campi o ai `knn_vector` campi che utilizzano motori diversi verranno conservati OpenSearch nel relativo livello di archiviazione.

Per tutte le richieste di massa che vengono riconosciute, OpenSearch garantisce che tutti i dati (vettoriali e non vettoriali) siano durevoli. Se una richiesta riceve un riscontro negativo, non vi sono garanzie sulla durabilità dei documenti contenuti nella richiesta di massa. È consigliabile riprovare tali richieste preferibilmente dopo aver eliminato la precedente richiesta non riuscita utilizzando l'ID del documento per evitare documenti duplicati in questi rari casi.

**Esempio di indicizzazione in blocco**

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

## Ricerca di documenti
<a name="s3-vector-opensearch-integration-engine-searching-documents"></a>

Puoi cercare nell'indice utilizzando l'`_search`API standard per eseguire query di testo, k-NN o ibride. Per le query sui `knn_vector` campi configurati con il `s3vector` motore, scarica OpenSearch automaticamente la query nell'indice vettoriale S3 corrispondente.

**Nota**  
Con `s3vector` engine, le query di ricerca k-NN supportano un valore massimo di 100. `k` Ciò significa che è possibile restituire un massimo di 100 vicini più vicini nei risultati della ricerca.

**Esempio di query di ricerca**

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

È possibile eseguire una ricerca vettoriale filtrata sull'indice OpenSearch kNN utilizzando il motore s3vector. OpenSearch applica il filtro come filtro successivo e utilizza un meccanismo di sovracampionamento basato su determinate euristiche per bilanciare il richiamo rispetto alla latenza.

**Esempio di query di ricerca con 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
            }
          }
        }
      }
    }
  }
}
```

## Parametri di mappatura supportati
<a name="s3-vector-opensearch-integration-engine-supported-mapping-parameters"></a>

Con `s3vector` engine, il `knn_vector` campo supporta i seguenti parametri nelle mappature.


**Parametri del campo vettoriale**  

| Parametro | Obbligatorio | Description | Valori supportati | 
| --- | --- | --- | --- | 
| type | Sì | Il tipo di campo presente nel documento. | knn\_vector | 
| dimension | Sì | La dimensione di ogni vettore che verrà inserito nell'indice. | >0, <=4096 | 
| space\_type | No | Lo spazio vettoriale usato per calcolare la distanza tra i vettori. | l2, cosinesimil | 
| method.engine | Sì | Il motore k-NN approssimativo da usare per l'indicizzazione e la ricerca. | s3vector | 
| method.name | No | Il metodo del vicino più vicino | "" | 
| store | N/D | L'abilitazione o la disabilitazione di questo parametro di mappatura è impossibile poiché i dati knn\_vector non sono memorizzati in. OpenSearch | Non supportato | 
| doc\_values | N/D | L'attivazione o la disabilitazione di questo parametro di mappatura non è un'operazione poiché i dati knn\_vector non sono archiviati in. OpenSearch | Non supportato | 

**Importante**  
I tipi di campi annidati non sono supportati utilizzando il motore `knn_vector` `s3vector`

## Misurazione e fatturazione
<a name="s3-vector-opensearch-integration-engine-metering-billing"></a>

Per informazioni sulla misurazione e la fatturazione di questa funzionalità, consulta i prezzi di [Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/pricing/).

## Disattivazione del motore s3vector
<a name="s3-vector-opensearch-integration-engine-disable"></a>

Prima di disabilitare il `s3vector` motore, elimina *tutti gli* indici che lo stanno attualmente utilizzando. In caso contrario, qualsiasi tentativo di disattivare il motore avrà esito negativo.

Tieni inoltre presente che l'attivazione o la disabilitazione del `s3vector` motore attiva una [distribuzione blu/verde](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes.html) sul tuo dominio.

Per disabilitare il `s3vector` motore, [modifica la configurazione del dominio e impostalo](https://docs.aws.amazon.com/cli/latest/reference/opensearch/update-domain-config.html). `S3VectorsEngine.Enabled: false`