Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
(Pratinjau) Kemampuan pencarian lanjutan dengan mesin vektor Amazon S3
penting
Integrasi Vektor Amazon S3 dengan OpenSearch Layanan dalam rilis pratinjau dan dapat berubah sewaktu-waktu.
Amazon OpenSearch Service menawarkan kemampuan untuk menggunakan Amazon S3 sebagai mesin vektor untuk indeks vektor. Fitur ini memungkinkan Anda untuk membongkar data vektor ke Amazon S3 sambil mempertahankan kemampuan pencarian vektor sub-detik dengan biaya rendah.
Dengan fitur ini, OpenSearch menyimpan penyematan vektor dalam indeks vektor Amazon S3 sambil menyimpan bidang dokumen lain di penyimpanan cluster. OpenSearch Arsitektur ini menawarkan manfaat sebagai berikut:
-
Daya tahan: Data yang ditulis ke Vektor S3 disimpan di S3, yang dirancang untuk daya tahan data 11 9 detik.
-
Skalabilitas: Bongkar kumpulan data vektor besar ke S3 tanpa menghabiskan penyimpanan cluster.
-
Efektivitas biaya: Optimalkan biaya penyimpanan untuk beban kerja berat vektor.
OpenSearch memiliki persyaratan berikut untuk menggunakan indeks vektor S3:
-
OpenSearch versi 2.19 atau yang lebih baru
-
OpenSearch Instans yang dioptimalkan
-
Versi patch terbaru untuk OpenSearch rilis Anda
Mengaktifkan Vektor S3
Saat membuat domain baru atau memperbarui domain yang ada, Anda dapat memilih opsi Aktifkan Vektor S3 sebagai mesin di bagian Fitur lanjutan. Pengaturan ini memungkinkan OpenSearch untuk membuat bucket vektor S3 saat Anda memanfaatkan Vektor S3 sebagai mesin Anda. Saat Anda mengaktifkan opsi ini, OpenSearch mengonfigurasi Vektor S3 untuk domain Anda dengan:
-
Membuat dua hibah baru pada AWS KMS kunci yang dikonfigurasi dengan domain Anda:
-
Hibah untuk pekerjaan pengindeksan latar belakang Vektor S3 dengan hak istimewa dekripsi
-
Hibah OpenSearch untuk membuat bucket vektor S3 dengan izin
GenerateDataKey
-
-
Mengkonfigurasi kunci KMS yang digunakan oleh OpenSearch domain Anda sebagai CMK untuk enkripsi di sisa semua data indeks vektor.
Membuat indeks dengan mesin vektor S3
Setelah mengonfigurasi domain, Anda dapat membuat satu atau lebih indeks K-nn dengan bidang yang digunakan s3vector
sebagai mesin vektor backend dalam pemetaan indeks. Anda dapat mengonfigurasi bidang vektor yang berbeda dengan jenis mesin yang berbeda berdasarkan kasus penggunaan Anda.
penting
Anda hanya dapat menggunakan s3vector
mesin dalam memetakan definisi bidang selama pembuatan indeks. Anda tidak dapat menambahkan atau memperbarui pemetaan dengan s3vector
engine setelah pembuatan indeks.
Berikut adalah beberapa contoh yang membuat indeks mesin vektor S3.
Contoh: Membuat indeks K-nn dengan mesin vektor 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" } } } }
Contoh: Membuat indeks k-NN dengan vektor S3 dan mesin FAISS
Contoh ini menyoroti fakta bahwa Anda dapat menggunakan beberapa mesin vektor dalam indeks yang sama.
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 } } } } } }
Contoh yang tidak didukung: Menambahkan mesin vektor S3 setelah pembuatan indeks
Pendekatan berikut tidak didukung dan akan gagal.
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" } } }
Keterbatasan fungsional
Pertimbangkan batasan berikut sebelum menggunakan s3vector
mesin dalam indeks:
Fitur | Perilaku |
---|---|
Split/Shrink/Cloneindeks |
Ini APIs gagal saat digunakan dengan indeks yang dikonfigurasi dengan |
Snapshot |
Indeks yang menggunakan
catatanMeskipun snapshot tidak didukung untuk point-in-time pemulihan, |
UltraWarm tingkat |
Indeks yang dikonfigurasi dengan |
Replikasi lintas-cluster |
Indeks yang dikonfigurasi dengan |
Perlindungan penghapusan yang tidak disengaja |
Karena snapshot tidak didukung untuk indeks yang menggunakan |
Pencarian radial |
Kueri dengan pencarian radial tidak didukung pada bidang yang menggunakan |
Dokumen pengindeksan
Setelah membuat indeks dengan mesin vektor S3, Anda dapat menelan dokumen menggunakan API standar_bulk
. OpenSearch secara otomatis membongkar data vektor knn_vector
bidang menggunakan s3vector
mesin ke indeks vektor S3 secara real time. Data milik bidang atau knn_vector
bidang lain yang menggunakan mesin yang berbeda akan disimpan OpenSearch di lapisan penyimpanannya sendiri.
Untuk semua permintaan massal yang diakui, OpenSearch menjamin bahwa semua data (vektor dan non-vektor) tahan lama. Jika permintaan menerima pengakuan negatif, tidak ada jaminan pada daya tahan dokumen dalam permintaan massal itu. Anda harus mencoba kembali permintaan tersebut.
Contoh pengindeksan massal
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 }
Mencari dokumen
Anda dapat mencari indeks menggunakan _search
API standar untuk mengeksekusi kueri teks, k-NN, atau hybrid. Untuk kueri pada knn_vector
bidang yang dikonfigurasi dengan s3vector
engine, OpenSearch secara otomatis menurunkan kueri ke indeks vektor S3 yang sesuai.
catatan
Dengan s3vector
mesin, semantik penyegaran hanya berlaku untuk bidang yang tidak menggunakan s3vector
mesin. Namun, data vektor Anda yang diturunkan s3vector
akan terlihat segera setelah dokumen berhasil diindeks.
Contoh permintaan pencarian
GET my-first-s3vector-index/_search { "size": 2, "query": { "knn": { "my_vector_1": { "vector": [2.5, 3.5], "k": 2 } } } }
Parameter pemetaan yang didukung
Dengan s3vector
mesin, knn_vector
bidang mendukung parameter berikut dalam pemetaan.
Parameter | Wajib | Deskripsi | Nilai yang didukung |
---|---|---|---|
type |
Ya | Jenis bidang yang ada dalam dokumen. | knn_vector |
dimension |
Ya | Dimensi setiap vektor yang akan dicerna ke dalam indeks. | > 0, <= 4096 |
space_type |
Tidak | Ruang vektor yang digunakan untuk menghitung jarak antar vektor. | l2 , cosinesimil |
method.engine |
Ya | Perkiraan mesin K-nn yang digunakan untuk pengindeksan dan pencarian. | s3vector |
method.name |
Tidak | Metode tetangga terdekat | "" |
penting
Jenis knn_vector
bidang bersarang tidak didukung menggunakan mesin s3vector
Pengukuran dan penagihan
Sampai pengukuran diumumkan, fitur ini tidak akan ditagih.
Menonaktifkan mesin s3vector
Sebelum Anda menonaktifkan s3vector
mesin, hapus semua indeks yang saat ini menggunakannya. Jika tidak, upaya apa pun untuk menonaktifkan mesin gagal.
Perhatikan juga bahwa mengaktifkan atau menonaktifkan s3vector
mesin memicu penyebaran biru/hijau di domain Anda.
Untuk menonaktifkan s3vector
mesin, edit konfigurasi domain Anda dan aturS3VectorsEngine.Enabled:
false
.