(Anteprima) Funzionalità di ricerca avanzate con un motore vettoriale Amazon S3 - OpenSearch Servizio Amazon

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

(Anteprima) Funzionalità di ricerca avanzate con un motore vettoriale Amazon S3

Importante

L'integrazione di Amazon S3 Vectors con OpenSearch Service è in versione di anteprima ed è soggetta a modifiche.

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 dei vettori S3

Quando crei un nuovo dominio 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

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

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

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

Caratteristiche e comportamenti non supportati dal motore s3vector
Funzionalità Comportamento

Split/Shrink/Cloneindice

Questi APIs falliscono se usati con un indice configurato con s3vector il motore in knn_vector campo.

Snapshot

Gli indici che utilizzano il s3vector motore non supportano le istantanee. Per i domini gestiti:

  • Le istantanee automatizzate includono solo gli indici che non utilizzano il motore. s3vector

  • Le richieste manuali di istantanee per s3vector gli indici hanno esito negativo.

Nota

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

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. È necessario riprovare tali richieste.

Esempio di indicizzazione di 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 }

Ricerca di documenti

Puoi cercare nell'indice utilizzando l'_searchAPI 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, la semantica di aggiornamento si applica solo ai campi che non utilizzano il motore. s3vector Tuttavia, i dati vettoriali scaricati su s3vector saranno visibili immediatamente dopo la corretta indicizzazione del documento.

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

Parametri di mappatura supportati

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

Parametri del campo vettoriale
Parametro Obbligatorio Descrizione Valori supportati
type Il tipo di campo presente nel documento. knn_vector
dimension 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 Il motore k-NN approssimativo da usare per l'indicizzazione e la ricerca. s3vector
method.name No Il metodo del vicino più vicino ""
Importante

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

Misurazione e fatturazione

Fino all'annuncio della misurazione, questa funzionalità non verrà fatturata.

Disattivazione del motore s3vector

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 sul tuo dominio.

Per disabilitare il s3vector motore, modifica la configurazione del dominio e impostalo. S3VectorsEngine.Enabled: false