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:
-
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
-
-
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:
Funzionalità | Comportamento |
---|---|
Split/Shrink/Cloneindice |
Questi APIs falliscono se usati con un indice configurato con |
Snapshot |
Gli indici che utilizzano il
NotaSebbene le istantanee non siano supportate per il point-in-time ripristino, |
UltraWarm livello |
Gli indici configurati con il |
Replica tra cluster |
Gli indici configurati con il |
Protezione da eliminazione accidentale |
Poiché le istantanee non sono supportate per gli indici che utilizzano il |
Ricerca radiale |
Le query con ricerca radiale non sono supportate nei campi che utilizzano il motore. |
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'_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, 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.
Parametro | Obbligatorio | Descrizione | 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 | "" |
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