Ikhtisar
Setiap dokumen berisi beberapa bidang, dan setiap bidang mencakup satu set kata. Indeks digunakan untuk mempercepat pengambilan data. Indeks dapat dibagi menjadi berbagai jenis berdasarkan pemetaan. Bagian berikut menjelaskan beberapa konsep terkait indeks:
Bidang: Nama dan tipe suatu bidang digunakan untuk mendefinisikan tabel indeks.
Indeks Terbalik: Indeks menyimpan pemetaan dari kata ke lokasi dalam dokumen. Contoh: Kata A: (Doc1, Doc2,..., DocN). Indeks terbalik digunakan untuk pengambilan data dan membantu menemukan dokumen yang berisi kata kunci tertentu.
Indeks Maju: Indeks menyimpan pemetaan dari dokumen ke bidang. Contoh: DocID (term1, term2,... termn). Indeks maju dapat dibagi menjadi indeks nilai tunggal dan indeks nilai ganda. Indeks nilai tunggal mencakup nilai data dengan atribut nilai tetap, seperti panjang tetap, tidak termasuk tipe String, sehingga membuat kueri lebih efisien. Data indeks ini juga dapat diperbarui. Atribut nilai ganda menunjukkan bahwa suatu bidang berisi beberapa data dengan jumlah yang bervariasi, yang dapat memengaruhi kinerja kueri. Data indeks ini tidak dapat diperbarui.
Indeks maju digunakan untuk mendapatkan atribut data berdasarkan ID dokumen. Atribut tersebut dapat digunakan untuk statistik, Pengurutan, dan penyaringan. OpenSearch Vector Search Edition mendukung tipe data bidang berikut dalam indeks maju:
INT8 (tipe integer bertanda 8-bit) dan UINT8 (tipe integer tak bertanda 8-bit)
INT16 (tipe integer bertanda 16-bit)
UINT16 (tipe integer tak bertanda 16-bit)
INTEGER (tipe integer bertanda 32-bit)
UINT32 (tipe integer tak bertanda 32-bit) dan INT64 (tipe integer bertanda 64-bit)
UINT64 (tipe integer tak bertanda 64-bit)
FLOAT (bilangan titik mengambang 32-bit)
DOUBLE (bilangan titik mengambang 64-bit)
STRING (tipe string)
Indeks Ringkasan: Indeks menyimpan data mirip dengan indeks maju, namun menyimpan pemetaan dari bidang ke dokumen. Indeks ringkasan membantu Anda menemukan konten dengan cepat berdasarkan ID dokumen dan digunakan untuk menampilkan hasil pencarian. Indeks ringkasan berisi sejumlah besar data. Untuk setiap kueri, Anda tidak perlu mengambil semua data di indeks ringkasan, melainkan hanya hasil pencarian dari dokumen berdasarkan indeks ringkasan. OpenSearch Vector Search Edition menyediakan mekanisme kompresi untuk indeks ringkasan. Jika Anda mengaktifkan kompresi dalam skema, OpenSearch Vector Search Edition menggunakan zlib untuk mengompres indeks ringkasan sebelum menyimpannya. Saat membaca data, mesin pencari mendekompres indeks ringkasan dan mengembalikan hasil kepada pengguna.
Untuk informasi lebih lanjut tentang cara mengonfigurasi tabel indeks, lihat Konfigurasikan Tabel Indeks.
Contoh Skema Indeks:
{
"summarys": {
"summary_fields": [
"pk",
"embedding",
"cate_id"
],
"parameter": {
"file_compressor": "zstd"
}
},
"indexs": [
{
"index_name": "id",
"index_type": "PRIMARYKEY64",
"index_fields": "pk",
"has_primary_key_attribute": true,
"is_primary_key_sorted": false
},
{
"index_name": "vector",
"index_type": "CUSTOMIZED",
"index_fields": [
{
"field_name": "pk",
"boost": 1
},
{
"field_name": "cate_id",
"boost": 1
},
{
"field_name": "embedding",
"boost": 1
}
],
"parameters": {
"dimension": "128",
"distance_type": "SquaredEuclidean",
"vector_index_type": "Qc",
"build_index_params": "{\"proxima.qc.builder.quantizer_class\":\"Int8QuantizerConverter\",\"proxima.qc.builder.quantize_by_centroid\":true,\"proxima.qc.builder.optimizer_class\":\"BruteForceBuilder\",\"proxima.qc.builder.thread_count\":10,\"proxima.qc.builder.optimizer_params\":{\"proxima.linear.builder.column_major_order\":true},\"proxima.qc.builder.store_original_features\":false,\"proxima.qc.builder.train_sample_count\":3000000,\"proxima.qc.builder.train_sample_ratio\":0.5}",
"search_index_params": "{\"proxima.qc.searcher.scan_ratio\":0.01}",
"embedding_delimiter": ",",
"major_order": "col",
"linear_build_threshold": "5000",
"min_scan_doc_cnt": "20000",
"enable_recall_report": "false",
"is_embedding_saved": "false",
"enable_rt_build": "false",
"builder_name": "QcBuilder",
"searcher_name": "QcSearcher"
},
"indexer": "aitheta2_indexer"
}
],
"attributes": [
{
"field_name": "pk",
"file_compress": "no_compressor"
},
{
"field_name": "embedding",
"file_compress": "no_compressor"
},
{
"field_name": "cate_id",
"file_compress": "file_compressor"
}
],
"fields": [
{
"user_defined_param": {},
"field_name": "pk",
"field_type": "INTEGER",
"compress_type": "equal"
},
{
"user_defined_param": {
"multi_value_sep": ","
},
"field_name": "embedding",
"field_type": "FLOAT",
"compress_type": "uniq",
"multi_value": true
},
{
"user_defined_param": {},
"field_name": "cate_id",
"field_type": "INTEGER",
"compress_type": "equal"
},
{
"field_name": "titile",
"field_type": "TEXT",
"analyzer": "chn_ecommerce_general"
}
],
"file_compress": [
{
"name": "file_compressor",
"type": "zstd"
},
{
"name": "no_compressor",
"type": ""
}
]
}Tambahkan tabel indeks
Di halaman detail instance, pilih Pusat Konfigurasi > Skema Indeks dan klik Buat Tabel Indeks.

Konfigurasikan tabel indeks. Pilih Template Umum di bagian Pilih Template.

Tabel Indeks: Masukkan nama kustom.
Sumber Data: Pilih sumber data sesuai kebutuhan bisnis Anda.
Shard Data: Masukkan nilai yang kurang dari atau sama dengan jumlah pekerja Searcher yang Anda beli.
Konfigurasikan bidang. Anda harus menentukan setidaknya dua bidang: bidang kunci utama dan bidang vektor. Bidang vektor harus bertipe data FLOAT multi-nilai.

Jika ingin mengonfigurasi indeks vektor dengan kategori, Anda dapat menambahkan bidang kategori antara bidang kunci utama dan bidang vektor. Bidang kategori harus berupa bidang nilai tunggal atau multi-nilai bertipe INTEGER.

Tentukan apakah akan mengompres bidang atribut dan data bidang:
Bidang atribut: Secara default, bidang atribut tidak dikompres. Jika file_compressor dipilih untuk bidang atribut, maka bidang tersebut dikompres.
Data bidang: Secara default, data bidang tidak dikompres. Untuk bidang multi-nilai atau bertipe STRING, uniq dipilih secara default. Untuk bidang nilai tunggal, equal dipilih secara default.
Saat mengonfigurasi indeks vektor, tentukan bidang dalam urutan bidang kunci utama, bidang kategori, dan bidang vektor. Bidang kategori bersifat opsional. Gambar di atas menunjukkan contohnya.
Jika Anda mengompres bidang atribut, kami sarankan memodifikasi metode pemuatan indeks untuk mengurangi dampak pada kinerja. Untuk memodifikasi metode pemuatan indeks, lakukan langkah berikut: Di halaman detail instance, klik Manajemen Penyebaran. Di halaman yang muncul, klik pekerja Searcher yang ingin Anda kelola. Di panel Konfigurasi Pekerja Searcher, klik tab Konfigurasi Tabel Online.
Konfigurasikan indeks. Anda harus mengatur tipe indeks kunci utama menjadi PRIMARYKEY64 dan tipe indeks vektor menjadi CUSTOMIZED.

Tentukan apakah akan mengompres bidang indeks:
Secara default, bidang indeks tidak dikompres. Jika file_compressor dipilih untuk bidang indeks, maka bidang tersebut dikompres.
Indeks kunci utama tidak dapat dikompres.
Jika Anda mengompres bidang indeks, kami sarankan memodifikasi metode pemuatan indeks untuk mengurangi dampak pada kinerja. Untuk memodifikasi metode pemuatan indeks, lakukan langkah berikut: Di halaman detail instance, klik Manajemen Penyebaran. Di halaman yang muncul, klik pekerja Searcher yang ingin Anda kelola. Di panel Konfigurasi Pekerja Searcher, klik tab Konfigurasi Tabel Online.
4.1. Tentukan bidang yang terkandung dalam indeks vektor.

Bidang kunci utama dan bidang vektor wajib. Bidang kategori bersifat opsional dan dapat dibiarkan kosong.
Anda hanya dapat memilih tiga bidang tetap dan tidak dapat menambahkan bidang baru.
4.2. Konfigurasikan pengaturan lanjutan. Anda harus mengonfigurasi parameter untuk indeks vektor. Gambar berikut menunjukkan contohnya. Untuk informasi lebih lanjut, lihat Indeks Vektor.

Gambar berikut menunjukkan parameter lainnya.

Kode sampel berikut memberikan contoh cara mengonfigurasi parameter build_index_params.
{
"proxima.qc.builder.quantizer_class": "Int8QuantizerConverter",
"proxima.qc.builder.quantize_by_centroid": true,
"proxima.qc.builder.optimizer_class": "BruteForceBuilder",
"proxima.qc.builder.thread_count": 10,
"proxima.qc.builder.optimizer_params": {
"proxima.linear.builder.column_major_order": true
},
"proxima.qc.builder.store_original_features": false,
"proxima.qc.builder.train_sample_count": 3000000,
"proxima.qc.builder.train_sample_ratio": 0.5
}Kode sampel berikut memberikan contoh cara mengonfigurasi parameter search_index_params.
{
"proxima.qc.searcher.scan_ratio": 0.01
}Setelah konfigurasi selesai, klik Simpan Versi. Di kotak dialog yang muncul, masukkan deskripsi dan klik Publikasikan. Deskripsi bersifat opsional.

Setelah tabel indeks ditambahkan, Anda dapat memilih O&M Center > Manajemen Penyebaran untuk melihat topologi.

Jika ingin membuat tabel indeks baru berlaku di kluster, pilih O&M Center > Manajemen O&M untuk memicu pengindeksan ulang secara manual.

Anda juga dapat melakukan operasi berikut untuk menyelesaikan langkah ini: Pilih O&M Center > Manajemen O&M, klik Perbarui Konfigurasi, dan kemudian pilih Dorong Konfigurasi dan Pemicu Pengindeksan Ulang di panel yang muncul.

Selama pengindeksan ulang, Anda dapat memilih O&M Center > Riwayat Perubahan dan klik tab Perubahan Sumber Data untuk melihat kemajuan tugas pengindeksan ulang.

Setelah tugas pengindeksan ulang selesai, Anda dapat menanyakan data dari tabel indeks baru.
Anda hanya dapat menentukan satu bidang kunci utama.
Dalam pengaturan bidang, Anda harus memilih Tampilan Hasil Pencarian untuk setidaknya satu bidang.
Untuk bidang bertipe TEXT, Anda harus menetapkan metode analisis. Bidang multi-nilai tidak didukung.
Anda hanya dapat menentukan satu indeks kunci utama.
Selain pemisah default, pemisah yang digunakan untuk memisahkan bidang multi-nilai hanya dapat berupa karakter tunggal. Karakter lebar penuh tidak didukung.
Jika jumlah replika di kluster adalah 2, atur parameter Shard Data menjadi 2. Saat membeli instance, pastikan bahwa jumlah pekerja Searcher lebih besar dari jumlah replika dikalikan dengan jumlah shard data. Jika tidak, tabel indeks yang Anda tambahkan tidak dapat digunakan.
Shard tunggal dapat berisi tidak lebih dari 0,6 miliar potongan data (maksimum 2,1 miliar potongan secara total). Ukuran indeks dari shard tunggal tidak boleh melebihi 300 GB. Jika data perlu diperbarui secara real-time, total transaksi per detik (TPS) pembaruan data dalam shard tunggal tidak boleh melebihi 4.000. Jika Anda menjalankan perintah add untuk menambahkan dokumen, update TPS dapat mencapai 10.000.
Modifikasi tabel indeks
Pengantar Versi Tabel Indeks:
Secara default, dua versi tersedia untuk tabel indeks yang baru dibuat.
index_config_v1: tabel indeks yang Anda konfigurasikan untuk pertama kali. Jika Anda telah mendorong konfigurasi dan membangun ulang indeks, status tabel indeks berubah menjadi Digunakan. Jika Anda belum mendorong konfigurasi atau membangun ulang indeks, status tabel indeks berubah menjadi Tidak Digunakan.
index_config_edit: tabel indeks yang sedang dimodifikasi. Tabel indeks berada dalam keadaan Memodifikasi.
Jika versi tabel indeks diterbitkan secara berurutan, nomor versi bersifat inkremental. Misalnya, versi kedua bernama index_config_v2 dan versi ketiga bernama index_config_v3. Untuk membedakan versi tabel indeks, Anda harus memasukkan deskripsi untuk setiap versi.

Modifikasi dan Publikasikan Versi Tabel Indeks Baru:
Temukan versi yang berada dalam keadaan Memodifikasi dan klik Modifikasi.

Setelah modifikasi, klik Simpan Versi.

Anda juga dapat beralih ke mode pengembang untuk memodifikasi skema secara manual.

Temukan versi yang berada dalam keadaan Memodifikasi, klik Publikasikan, dan masukkan deskripsi. Lalu, klik OK.

Pada langkah ini, sistem menghasilkan versi tabel indeks baru untuk tabel indeks. Versi tabel indeks berada dalam keadaan Tidak Digunakan.
Jika ingin membuat tabel indeks baru berlaku di kluster, pilih O&M Center > Manajemen O&M, klik Perbarui Konfigurasi, dan kemudian pilih Dorong Konfigurasi dan Pemicu Pengindeksan Ulang di panel yang muncul.

Hapus Versi Tabel Indeks:
Anda dapat menghapus versi tabel indeks yang berada dalam keadaan Tidak Digunakan.

Lihat Versi Tabel Indeks:
Klik Lihat untuk pergi ke halaman konfigurasi versi tabel indeks. Anda memiliki izin baca-saja di halaman tersebut.
Mode administrator:

Mode pengembang:

Hapus tabel indeks
Anda dapat menghapus tabel indeks yang tidak berisi versi dalam keadaan Digunakan.

Jika tabel indeks berisi versi dalam keadaan Digunakan, Anda hanya dapat menghapus tabel indeks dengan melakukan langkah-langkah berikut:

Pilih Manajemen O&M > Manajemen Penyebaran, modifikasi tabel indeks, dan matikan Efektif Online.

Kemudian, pilih Pusat Konfigurasi > Skema Indeks, temukan tabel indeks yang ingin dihapus, dan klik Hapus.

Catatan: Jika Efektif Online dimatikan di halaman manajemen penyebaran, Anda harus menghapus tabel indeks dari skema indeks. Jika tidak, kinerja kueri kluster online akan terpengaruh.
Catatan penggunaan:
Saat menambahkan tabel indeks, Anda harus menentukan sumber data. Jika tidak ada sumber data yang tersedia, tambahkan sumber data sebelum menambahkan tabel indeks.
Setelah tabel indeks dibuat, Anda tidak dapat mengubah nama tabel indeks.
Jika tabel indeks berisi versi dalam keadaan Digunakan, Anda tidak dapat langsung menghapus tabel indeks.
Setiap tabel indeks hanya dapat berisi satu versi dalam keadaan Memodifikasi.