Gunakan Object Storage Service (OSS) untuk pembuatan indeks penuh dari file HA3 atau JSON yang disimpan di bucket, lalu gunakan API untuk pembaruan inkremental setelah indeks aktif.
| Metode | Peran | Kapan digunakan |
|---|---|---|
| Impor penuh OSS | Memuat semua record sekaligus saat pembuatan indeks | Build awal atau rebuild penuh indeks |
| Pembaruan inkremental API | Menambahkan, memodifikasi, atau menghapus record setelah indeks aktif | Perubahan data berkelanjutan |
OSS dan instans OpenSearch Vector Search Edition Anda harus berada di wilayah yang sama. Perbedaan wilayah akan menyebabkan koneksi sumber data gagal.
Pengaturan terdiri dari dua bagian: menyiapkan OSS, lalu menghubungkannya sebagai sumber data saat membuat tabel.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Akun Alibaba Cloud dengan OSS yang telah diaktifkan
-
Instans Vector Search Edition yang telah dibeli (lihat Beli instans Vector Search Edition)
-
File data yang dikodekan dalam UTF-8, diformat sebagai HA3 atau JSON
Langkah 1: Siapkan OSS
Aktifkan OSS
Aktifkan OSS di wilayah yang sama dengan instans OpenSearch Anda.
Buat bucket
-
Buka OSS Management Console > Buckets > Create Bucket.
Di panel navigasi kiri OSS Management Console, klik Buckets, lalu klik Create Bucket.
-
Setelah bucket dibuat, tambahkan tag OpenSearch: Buka Bucket Settings > Bucket Tagging > Create Tag.
Atur kunci tag (Key) dan nilai tag (Value) menjadi
opensearch.
Siapkan file data Anda
File harus memenuhi persyaratan berikut sebelum diunggah:
| Persyaratan | Detail |
|---|---|
| Encoding | UTF-8 |
| Format | HA3 atau JSON |
| Lokasi | Harus berada di dalam folder, bukan di root bucket |
Format JSON
Setiap baris berisi satu dokumen JSON. Format JSON multi-baris tidak didukung.
| Aturan | Detail |
|---|---|
| Satu record per baris | Setiap objek JSON harus berada dalam satu baris |
| Pemisah baris | \n antar record; \n tidak boleh muncul di dalam nilai JSON |
| Tidak ada file campuran | Direktori hanya boleh berisi file data JSON |
| Tipe nilai | Semua nilai JSON berupa string; skema akan mengonversinya ke tipe yang sesuai selama pembuatan indeks |
Contoh:
{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "Huawei Mate 9 Kirin 960 chip Leica dual camera", "color": "Red", "empty_int32": "", "price": "3599", "CMD": "add", "nid": "1", "gather_cn_str": "", "desc": ["str1", "str2", "str3"], "brand": "Huawei", "size": "5.9","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
{"field_double": ["100.0", "221.123", "500.3333333", "100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300", "100", "200", "300"], "title": "Huawei/Huawei P10 Plus full network phone", "color": "Blue", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "colorBlue", "desc": ["str1", "str2", "str3", "str1", "str2", "str3"], "brand": "Huawei", "size": "5.5","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
Format HA3
File HA3 menggunakan pemisah biner. Setiap file berisi rangkaian perintah add dan delete.
Pemisah file
| Encoding C++ | Heks ASCII | Deskripsi | Tampilan (emacs/vi) | Masukan di emacs | Input di vi |
|---|---|---|---|---|---|
"\x1F\n" |
1F0A | Pemisah key-value | ^_ (diikuti line feed) |
C-q C-7 | C-v C-7 |
"\x1E\n" |
1E0A | Pemisah perintah | ^^ (diikuti line feed) |
C-q C-6 | C-v C-6 |
"\x1D" |
1D | Pemisah multi-nilai | ^] |
C-q C-5 | C-v C-5 |
"\x1C" |
1C | Flag bobot bagian | ^\ |
C-q C-4 | C-v C-4 |
"\x1D" |
1D | Pemisah bagian | ^] |
C-q C-5 | C-v C-5 |
"\x03" |
03 | Pemisah field sub-dokumen | ^C |
C-q C-c | C-v C-c |
Format perintah
-
Perintah add: Baris pertama harus berisi
CMD=add. Sertakan semua field yang didefinisikan dalam skema, dalam urutan apa pun.CMD=add^_ PK=12345321^_ url=http://www.aliyun.com/index.html^_ title=Alibaba Cloud Computing Co., Ltd.^_ body=xxxxxx xxx^_ time=3123423421^_ multi_value_field=1234^]324^]342^_ bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_ ^^ -
Perintah delete: Baris pertama harus berisi
CMD=delete. Sertakan field primary key dan field hash partisi. Jika keduanya merupakan field yang sama, cukup sertakan sekali saja.CMD=delete^_ PK=12345321^_ ^^
Unggah file ke bucket
Letakkan file data Anda di dalam folder di dalam bucket — bukan di direktori root. Struktur bucket harus tampak seperti berikut:
<nama-bucket-anda>/
└── <folder-data-anda>/
├── data_file_1.json
├── data_file_2.json
└── ...
Untuk mengunggah:
-
Di OSS Management Console, buka bucket Anda.
-
Di panel navigasi kiri, buka Object Management > Objects.
-
Klik Upload Object, pilih file Anda, lalu konfirmasi.
Setelah pengunggahan selesai, status file di panel Task List menampilkan Upload Successful.
Langkah 2: Tambahkan sumber data OSS + API
Atur informasi dasar tabel
-
Di Daftar Instans, temukan instans Vector Search Edition Anda dan klik Manage di kolom Actions.
-
Di panel navigasi kiri, buka Table Management > Add Table.
-
Isi informasi dasar tabel dan klik Next.
Field Deskripsi Table Name Nama kustom untuk tabel ini Number of Data Shards Bilangan bulat positif, maksimum 256. Semakin banyak shard, semakin cepat proses build penuh dan performa kueri tunggal. Number of Data Update Resources Resource yang digunakan untuk pembaruan data inkremental. Setiap indeks mencakup dua resource pembaruan gratis berkapasitas 4-core 8 GB secara default. Resource tambahan dikenai biaya. Lihat penagihan Vector Search Edition. Scenario Template Pilih salah satu: General Template, Vector: Image Search Template, atau Vector: Text Semantic Search Template Setelah memilih templat Vector: Image Search, pilih metode pengambilan: Dense Vector Retrieval atau Dense & Sparse Vector Hybrid Retrieval.
Konfigurasikan sinkronisasi data
-
Untuk Full Data Source, pilih Object Storage Service (OSS) + API.
-
Isi detail koneksi OSS dan klik Data Source Verification.
Field Deskripsi OSS Path Jalur ke folder yang berisi file data Anda. Harus diawali dengan /. Tidak boleh mengandung?,=, atau&. File harus berada di dalam folder — direktori root tidak didukung.OSS Bucket Nama bucket OSS Data Format Pilih HA3 atau JSON agar sesuai dengan file yang diunggah -
Setelah verifikasi berhasil, klik Next.
Jika verifikasi gagal, periksa apakah jalur OSS mengarah ke folder (bukan root), nama bucket benar, format data sesuai dengan file Anda, dan OSS berada di wilayah yang sama dengan instans OpenSearch Anda.
Konfigurasikan field
Vector Search Edition mengisi field secara otomatis berdasarkan templat skenario Anda dan mengimpor definisi field dari sumber data.
-
Tinjau field yang telah ditentukan. Untuk Image Search Template, field default-nya adalah:
Field Deskripsi idPrimary key source_imageGambar sumber namespaceNamespace source_image_vectorVektor gambar sumber -
Konfigurasikan tipe dan properti field:
-
Primary key (wajib): Atur Type ke tipe integer atau
STRING, lalu pilih opsi Primary Key. -
Vector field (wajib): Atur Type ke
FLOATdan centang kotak Vector Field. Field vektor secara default merupakanFLOATmulti-nilai dengan koma sebagai pemisah. Masukkan pemisah kustom jika diperlukan. -
Default values: Saat suatu field tidak ada atau kosong dalam data, sistem akan mengisi nilai default —
0untuk tipe numerik, string kosong untuk tipeSTRING. Sesuaikan nilai default sesuai kebutuhan.
-
-
Untuk field yang memerlukan pra-pemrosesan (seperti
source_image), klik Configure di kolom Data Preprocessing. Dalam konfigurasi pra-pemrosesan:-
Data Source: Pilih OSS Object Storage untuk mengimpor gambar langsung dari OSS (berikan jalur OSS), atau Base64 Encoding untuk menyediakan data gambar terenkripsi melalui API.
-
Pre-processing Template: Pilih templat yang sesuai dengan tipe data Anda. Untuk gambar, templat yang tersedia adalah:
-
Image Vectorization
-
OCR Image Text Recognition
-
OCR Image Text Recognition + Image Vectorization
-
-
Service List: Setelah memilih templat, tinjau model yang digunakan. Pilih dari:
-
Built-in Models: Gratis digunakan, dengan pilihan jenis model yang lebih terbatas.
-
Nilai konfigurasi untuk contoh ini:
-
OSS Endpoint:
oss-cn-shenzhen-internal.aliyuncs.com -
OSS Bucket:
zhyq-sz -
Di daftar layanan, pilih model Built-in General Image Embedding Model - 512D CLIP, dengan field output diatur ke
source_image_vector.
Klik OK untuk mengonfirmasi.
-
-
Klik Next.
Konfigurasikan skema indeks
-
Atur field yang disertakan dan parameter indeks, lalu klik Next.
Parameter Deskripsi Included Fields Primary key dan vector field wajib disertakan. Field namespace bersifat opsional. Vector Dimension Jumlah dimensi penyematan vektor Anda Real-time Indexing Aktifkan atau nonaktifkan pembaruan indeks real-time Distance Type Metrik jarak untuk pencarian kemiripan vektor Vector Index Algorithm Algoritma yang digunakan untuk membangun indeks vektor Contoh konfigurasi indeks vektor:
-
Nama indeks:
source_image_vector -
Pengambilan hibrida: Disabled
-
Primary key:
id, Vector field:source_image_vector -
Dimensi:
512 -
Tipe jarak: SquaredEuclidean
-
Indeks real-time:
true -
Algoritma: Qc
-
-
Klik More Advanced Configuration untuk memperluas bidang parameter lanjutan:
-
Real-time Index Parameters
-
Index Build Parameters
-
Index Search Parameters
-
Linear Build Threshold
-
Minimum Recall Candidate Set Size
-
Recall Metric Reporting
-
Ignore Problematic Vector Data
Untuk referensi parameter lengkap, lihat Konfigurasi indeks vektor umum.
-
Konfirmasi dan verifikasi
-
Di halaman Confirm Creation, tinjau pengaturan Anda dan klik Confirm.
-
Kembali ke Daftar Instans. Status instans berubah menjadi Normal dalam waktu sekitar 2 menit.
-
Saat status sudah Normal, gunakan Actions > Query Test untuk menjalankan kueri uji dan memverifikasi bahwa indeks berfungsi.